LinuxMint/Ubuntu 安装Nginx+PHP7+Mysql

1. 安装Nginx

要安装Nginx首先要将官方的项目源添加到系统中:

可以直接在/etc/apt/sources.list文件中添加, 也可以在/etc/apt/sources.list.d中新建一个nignx.list文件并将项目源添加进去.

## Replace $release with your corresponding Ubuntu release.
deb http://nginx.org/packages/ubuntu/ $release nginx
deb-src http://nginx.org/packages/ubuntu/ $release nginx

使用时要将上面的$release替换为你的系统发行版本, 比如我的LinuxMint是基于xenial的就可以这样写:

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

添加完毕之后, 执行sudo apt-get update 更新一下项目源, 然后sudo apt-get install nginx就好了.

不过在安装过程中, 终端提示安装失败, 比给出一段信息:

W: GPG error: http://nginx.org/packages/ubuntu xenial Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY AB23465345

提示没有公钥, 每个机器的公钥可能不一样, 不过不要紧, 只需要在终端执行下面的代码便可以:

## Replace $key with the corresponding $key from your GPG error.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
sudo apt-get update
sudo apt-get install nginx

将上面的--recv-keys $key 中的$key替换成出现错误提示给出的公钥就可以, 我的公钥就是AB23456345. 执行完毕Nginx就按装完毕啦. 在终端种输入/usr/bin/nginx或者nginx就启动Nginx了, 在浏览器中访问localhost就可以看到Nginx的欢迎界面.

2. 安装php7

在php.net官网下载php7.x.x 并解压

tar zvxf php-x.x.x

进入到目录并且执行源码安装

cd ../php-x.x.x
./configure --enable-fpm --with-mysql
make
sudo make install

如果出现Thanks for using PHP 就说明安装完成.

但我的在安装过程中出现了错误提示:

 configure: error:. Xml2-config not found Please check your libxml2 installation.

没有libxml2的支持, 解决方法: apt-get install libxml2-dev 安装完成重复configuse并make & make install.

安装好php之后还有一些配置操作:

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

有些博客里面说php-fpm.conf.default所在的目录是/usr/local/etc/, 但我的在/usr/local/php/etc/ 这里, 百度了一下发现好多人问在/usr/local/etc里面找不到php-fpm.conf.default文件, 看来可能是安装时configure不同导致的吧.

另外, 还有的人把php.ini目录放在php的根目录下, 而我放在根目录下的lib文件里面. 区别可能是执行 ./configure的时候有没有指定php.ini的位置: --with-config-file-path=/usr/local/php 如果configure的时候指定了config_file的路径为php的根目录, 就可以把php.ini放在根目录, 否则默认为读取根目录下php.ini作为配置文件.

分配好php.ini的路径之后, 修改里面的cgi.fix_pathinfo选项: 去掉注释, 将原值1改为0.作用是当文件不存在时阻止Nginx将发送到php-fpm模块, 避免恶意的脚本注入.

另外, 安装好Nginx和php之后学要, 还要配置Nginx的配置文件nginx.conf增加对php文件的支持:

location / {
    root   html;
    index  index.php index.html index.htm;
}

其中root为你存放html和php文件的路径, 例如我的为 /usr/share/nginx/html; index这一列种默认只有 index.html和index.htm, 手动添加index.php, 然后找到以下代码

location ~* \.php$ {
root html; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }

去掉代码的注释, 并将root的目录修改为自己网页存放的路径, 如果没有root这一行可以手动创建.

完成所有的动作后可以启动php-fpm: sudo /usr/local/bin/php-fpm即可,启动完毕后可用fpm默认的9000端口检验一下, netstat -tln |grep 9000, 看到端口被LISTEN则开启fpm成功.

启动fpm后重启一下nginx: sudo nginx reload, 然后在文件目录中创建一个 只有phpinfo()函数的index.php, 在浏览器种输入localhost就可以看到phpinfo(), 至此Nginx+PHP7的配置完成. 下一步就是安装配置Mysql了.

3. 安装mysql

sudo apt-get install mysql-server mysql-client

*安装中间会提示设置root密码, 设置安装完成后, 键入mysql -u root -p 进入mysql的命令行模式

*mysql安装无误之后,输入sudo apt-get install php-mysql 使得php支持mysql