如何在FreeBSD Unix服务器上安装Apache,MySQL,PHP堆栈

时间:2020-01-09 10:39:18  来源:igfitidea点击:

如何在基于FreeBSD 10的Unix服务器上设置和安装Apache,MySQL,PHP堆栈?

FAMP堆栈不过是一组运行基于php的应用程序的源软件。
包括:

  • FreeBSD 10.1-RELEASE amd64
  • Apache v2.4
  • PHP v5.6
  • MySQL v5.6

本教程说明了如何安装和配置FAMP堆栈。

更新您的端口

像往常一样,在开始之前确保一切都是最新的。

# portsnap fetch update && portupgrade -a

输出示例:

Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found.
Fetching public key from your-org.portsnap.freebsd.org... done.
Fetching snapshot tag from your-org.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Fri Jan  2 00:09:16 UTC 2014:
4955cbbaee76bcad21123666d1c7eee0d55bc059e2ea04100% of   70 MB 5735 kBps 00m13s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag from your-org.portsnap.freebsd.org... done.
Fetching snapshot metadata... done.
Updating from Fri Jan  2 00:09:16 UTC 2014 to Fri Jan  2 11:42:26 UTC 2014.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 8 patches. 
....
..

安装Apache服务器

要安装端口:

# cd /usr/ports/www/apache24/ && make install clean

或者,添加包:

# pkg install www/apache24

在启动时启动Apache服务

将以下内容添加到/etc/rc.conf文件的末尾以在启动时启动Apache:

echo 'apache24_enable="YES"' >> /etc/rc.conf

启动/停止/重启Apache服务器

要启动Apache以确保其正常工作:

# /usr/local/etc/rc.d/apache24 start

要重新启动Apache服务器:

# /usr/local/etc/rc.d/apache24 restart

要停止Apache服务器:

# /usr/local/etc/rc.d/apache24 stop

您还可以使用service命令在FreeBSD上启动/停止/重新启动Apache服务器:

## service command to control Apache server ##
service apache24 start
service apache24 restart
service apache24 stop
service apache24 status

注意:如果出现此错误:
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1

那么需要全局设置ServerName指令以禁止显示此消息:
将下一行添加到/usr/local/ect/apache24/httpd.conf文件中:

ServerName localhost

将localhost替换为可以通过以下方式获取的服务器域名:

# hostname -f

设置MySQL服务器

要安装的软件包或端口将取决于可用的MySQL版本。

安装MySQL服务器

要安装端口:

# cd /usr/ports/databases/mysql56-server/ && make install clean

或者,添加软件包:

# pkg install databases/mysql56-server

安装mysql数据库服务器

安装MySQL客户端

要安装端口:

# cd /usr/ports/databases/mysql56-client/ && make install clean

或者,添加软件包:

# pkg install databases/mysql56-client

在启动时启动Mysql服务器服务

最后,/etc/rc.conf必须包含以下行以允许MySQL服务器启动:

echo 'mysql_enable="YES"' >> /etc/rc.conf

启动/停止/重启Mysql服务器

要启动Mysql服务器,请执行:

# /usr/local/etc/rc.d/mysql-server start

要重新启动Mysql服务器,请执行:

# /usr/local/etc/rc.d/mysql-server restart

要停止Mysql服务器,请执行:

# /usr/local/etc/rc.d/mysql-server stop

您也可以使用service命令在FreeBSD上启动/停止/重新启动mysql服务器:

## command to start/stop mysql servers on a FreeBSD 10 ##
service mysql-server start
service mysql-server restart
service mysql-server stop
service mysql-server status

设置Mysql服务器密码

默认设置为允许任何人都具有完全访问权限。
设置密码非常重要。
要在匿名帐户上设置密码,请使用:

# mysql -u root

在mysql>提示符下运行以下sql查询(将" host_name"替换为可以通过" hostname -f"命令获得的实际系统主机名:

mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd-here');
    mysql> SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd-here');
    mysql> quit
Bye

要为根帐户设置密码,请使用:

# mysql -u root

在mysql>提示符下运行以下sql查询:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd-here');
    mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd-here');
    mysql>  quit
Bye

NOTE:为MySQL root用户设置密码的另一种方法是运行以下命令:/usr/local/bin/mysqladmin -u root password'PASSWORD-HERE'

设置密码后,以下是关闭mysqld服务器的方法:

# mysqladmin -u root -p shutdown

输出示例:

Enter password:

提示:如果您忘记了root密码,可以通过以下方法重置它

使用以下命令停止mysqld:

# /usr/local/etc/rc.d/mysql-server.sh stop

修改启动命令以将此选项添加到命令行。
不要长时间保持此选项。
仅在您需要时使用。
它绕过了所有常用的mysql安全性:

-Sg|--skip-grant-tables

此选项使服务器完全不使用特权系统。
这使每个人都可以完全访问所有数据库! (您可以通过执行mysqladmin flush-privileges或mysqladmin reload来告诉运行中的服务器再次开始使用授权表。)

在/usr/local/etc/rc.d/mysql-server.sh中进行修改:

/usr/local/bin/safe_mysqld --user=mysql --skip-grant-tables > /dev/null & && echo -n ' mysqld'

启动mysqld:

# /usr/local/etc/rc.d/mysql-server.sh start

连接到mysql:

# mysql

请注意,因为此下一步将重置所有root用户的密码。

选择mysql数据库并重置密码:

mysql> use mysql
    mysql> update user set password = PASSWORD('secret') where user = 'root';
    mysql> quit
  • 不要忘记撤消mysql绕过的操作,即使用以下命令停止mysqld:/usr/local/etc/rc.d/mysql-server.sh stop

  • 从vi /usr/local/etc/rc.d/mysql-server.sh中删除该选项,并删除--skip-grant-tables选项。

  • 使用以下命令重新启动mysqld:/usr/local/etc/rc.d/mysql-server.sh start

安装PHP

构建PHP时,需要添加配置选项,以便PHP构建包括对Apache服务器的支持。
执行以下命令:

# cd /usr/ports/lang/php56
# make config

出现菜单时,选择/取消选择各种构建选项。
您应该选择, 使用ports集合构建PHP

现在,您将执行make clean命令。
我通常将所有这些命令合而为一,但是为了获得配置菜单,我将它们分开。

# make install clean

为Apache安装mod_php

执行以下命令来为Apache构建mod_php:

# cd /usr/ports/www/mod_php56
# make install clean

安装PHP扩展

如果您不确定它是否安装了MySQL,或者您没有在MySQL安装中对其进行检查,则将以相同的方式执行命令,以便获得配置菜单以添加对MySQL和MySQLi的支持以与MySQL服务器通信。

# cd /usr/ports/lang/php56-extensions/
# make config

为Apache安装流行的扩展

您还可以根据您的PHP应用程序要求选择其他扩展。
然后完成:

# make install clean

配置mod_php

要配置它,您将执行以下命令,该命令仅复制一个文件:

# cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini

要配置Apache并打开文件:

# ee /usr/local/etc/apache24/httpd.conf

我使用ee(随意使用vi或Emacs)文本编辑器进行简单的编辑,请查找以下行:

DirectoryIndex index.html

并对其进行更改,使其内容如下:

DirectoryIndex index.html index.htm index.php

根据您的域,IP和端口号查找并设置以下值:

ServerAdmin [email protected]
ServerName www.theitroad.local:80
Listen :80

保存并关闭文件。
创建一个名为`/usr/local/etc/apache24/modules.d/001_mod_php.conf的文件,如下所示:

# cat /usr/local/etc/apache24/modules.d/001_mod_php.conf
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

现在重启Apache服务器:

# /usr/local/etc/rc.d/apache24 restart

或者

# service apache24 restart

测试您的设置

创建一个名为/usr/local/www/apache24/data/test.php的文件:vi /usr/local/www/apache24/data/test.php追加以下代码:

<?php
    phpinfo();
?>

保存并关闭文件。
打开浏览器并输入网址:

http://your-domain-name/test.php
http://your-ip-address/test.php