linux手动搭建nginx+php+mysql是一件必备的技能,然而,网上很多安装的解释具有很大的重复性,并且博主也亲自的试过很多教程,都因此失落败而告终的,下面,我讲先容一种可行的安装方法,利用的是yum源安装,比较随意马虎成功。
这次安装的linux环境是centos7.2的。

步骤 1 - 在 CentOS 7 中安装 Nginx 和 PHP7-FPM

在开始安装 Nginx 和 php7-fpm 之前,我们要先添加 EPEL 包的仓库源。
利用如下命令:

linux配置phpmysqllinux下手动搭建phpmysqlnginx绝对靠谱 JavaScript

yum -y install epel-release

安装完EPEL 源之后,我们就可以通过仓库源安装nginx了,代码如下:

yum -y install nginx

实行完上面的命令之后,我们实行nginx -v,会涌现如下的信息:

NGINX安装完成示意图

接下来,我们启动nginx,并且把他设置为开机自启动。

systemctl start nginxsystemctl enable nginx

然后通过浏览器访问我们做事器的公网地址,涌现如下界面解释nginx安装和启动成功了。

然后我们还须要为 php7-fpm 添加其余一个仓库。
互联网中有很个远程仓库供应了 PHP 7 系列包,我在这里利用的是 webtatic。

添加 PHP7-FPM webtatic 仓库:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

然后便是安装 PHP7-FPM 以及 一些包。

yum -y install php71w-fpm php71w-cli php71w-gd php71w-mcrypt php71w-mysql php71w-pdo php71w-xml php71w-pear php71w-mbstring php71w-mbstring php71w-json php71w-pecl-apcu php71w-pecl-apcu-devel

末了,从做事器终端里查看 PHP 的版本号,以便验证 PHP 是否精确安装。

php -v

步骤 2 - 配置 PHP7-FPM

在这一个步骤中,我们将配置 php-fpm 与 Nginx 协同运行。
Php7-fpm 将利用 nginx 用户来运行,并监听 9000 端口。

利用 vim 编辑默认的 php7-fpm 配置文件。

vim /etc/php-fpm.d/www.conf

在第 8 行和第 10行,user 和 group 赋值为 nginx。

user = nginxgroup = nginx

在第 22 行,确保 php-fpm 运行在指定端口。

listen = 127.0.0.1:9000

取消第 366-370 行的注释,启用 php-fpm 的系统环境变量。

env[HOSTNAME] = $HOSTNAMEenv[PATH] = /usr/local/bin:/usr/bin:/binenv[TMP] = /tmpenv[TMPDIR] = /tmpenv[TEMP] = /tmp

保存文件并退出 vim 编辑器。

接下来我们编辑nginx.conf的配置文件,让nginx能够解析php文件

vim /etc/nginx/nginx.conf

然后在nginx.conf里面插入如下代码,记住格式必须要同等,空格之类的不能多也不能少,不然等下重启nginx的时候会报错。

location ~ \.php$ {

#root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

对齐后的格式如下图:

然后启动 php-fpm 和 Nginx,并且将php-fpm设置为随开机启动的做事。

service nginx restartsystemctl start php-fpmsystemctl enable php-fpm

PHP7-FPM 配置完成。

然后在我们nginx目录下创建phpinfo.php文件(博主的目录为/usr/share/nginx/html)

vi /usr/share/nginx/html/phpinfo.php

接在在里面填写如下信息

<?phpphpinfo();

然后访问http://你的做事器公网ip/phpinfo.php,涌现php的信息之后解释配置成功。

接下来,还要一步要做,那便是设置下session有关的东西。
如果我们不把session拥有者设置为nginx,session不在同一个页面的话就会涌现问题(博主亲自的酸楚经历啊)。
我们须要再/var/lib/目录下,创建文件夹,文件夹名字为session,进行如下命令:

mkdir -p /var/lib/php/sessionchown nginx:nginx -R /var/lib/php/session

步骤 3 - 安装和配置 MariaDB或者mysql

在这里我们供应安装mariadb和mysql的,如果不想安装mariadb的,请拉下去看安装mysql的部分。

我这里利用 MariaDB 作为数据库。
可以直策应用 yum 命令从 CentOS 默认远程仓库中安装 mariadb-server 包。

yum -y install mariadb mariadb-server

启动 MariaDB,并将其添加到随系统启动的做事中去。

systemctl start mariadbsystemctl enable mariadb

现在开始配置 MariaDB 的 root 用户密码。

mysql_secure_installation

输入完之后,会哀求输涌如今的密码,默认安装完之后密码为空,直接回车。

键入 Y ,然后设置 MariaDB 的 root 密码。

Set root password? [Y/n] Y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

这样就设置好了密码,然后考试测验上岸下:

mysql -uroot -p

自此,我们的linux下安装php+mysql+nginx算是完成了。

安装mysql:

已经安装了上面了的mariadb的,可以不安装这个了,这两个数据库的用法差不多的,详情请百度。

首先Centos7已经不支持mysql,由于收费了你懂得。
centos下yum暂时没有mysql-server直接安装包;MariaDB是MySQL社区开拓的分支,也是一个增强型的替代品。
CentOS7的yum源中默认彷佛是没有mysql的。
为理解决这个问题,我们要先下载mysql的repo源。

1. 下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2. 安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会得到两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3. 安装mysql

yum install mysql-server

根据步骤安装就可以了,不过安装完成后,没有密码,须要重置密码。
重置密码之前,首先要实行以下操作:

chown -R openscanner:openscanner /var/lib/mysql

然后重启做事器:

service mysqld restart

接下来登录重置密码:

mysql -urootmysql >use mysql;mysql >update user set password=passworD(\公众123456\"大众) where user='root';mysql> flush privileges;mysql> exit;

附:

在linux的搭建文件中有一段是安装 PHP7-FPM 须要的一些包。

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-devel

在此先容一下各安装包的浸染:

PHP-CLI

CLI是命令行版本。

FPM是作为Apache或者Nginx等做事器软件处理PHP文件的扩展。

PHP的默认版本是不支持线程安全的,这个线程安全问题可以去理解PHP扩展开拓方面的干系知识,这是由于C措辞方面的问题了。

cli和fpm是php的两种运行办法,而线程安全和非线程安全该当才能说的上是版本。
是否开启线程安全可以在编译PHP的时候进行选择的。

php_cli模式优点

1. 利用多进程, 子进程结束往后, 内核会卖力回收资源

2. 利用多进程,子进程非常退出不会导致全体进程Thread退出. 父进程还有机会重修流程.

3. 一个常驻主进程, 只负任务务分发, 逻辑更清楚.

4.完备支持多线程

5.如上,可以实现定时任务

6.开拓桌面运用便是利用PHP-CLI和GTK包

7.linux下用php编写shell脚本

例如swoole_server就只能用于php-cli环境

怎么运行PHP CLI脚本

第一种方法是利用php -f /path/to/yourfile.php。
调用PHP CLI阐明器,并给脚本通报参数。
这种方法首先要设置php阐明器的路径,Windows平台在运行CLI之前,需设置类似path c:\php的命令,也失落去了CLI脚本第一行的意义,因此不建议利用该方法。

第二种方法是首先运行chmod+x <要运行的脚本文件名>(UNIX/Linux环境),将该PHP文件置为可实行权限,然后在CLI脚本头部第一行加入声明(类似于#! /usr/bin/php或PHP CLI阐明器位置),接着在命令行直接实行。
这是CLI首选方法,建议采取

php-mcrypt:

mcrypt 是php里面主要的加密支持扩展库,linux环境下该库在默认情形下不开启。
window环境下,PHP>=5.3,默认开启mcrypt扩展。

php-pear:

PEAR是PHP扩展与运用库(the PHP Extension and Application Repository)的缩写。
它是一个PHP扩展及运用的一个代码仓库,大略地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。

PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有年夜志的目标则是试图定义一种标准,这种标准将帮助开拓者编写可移植、可重用的代码。

Internet上已经有关于该项目的一些文档。
例如,一些初始的资料已经可以在PHP正式手册中找到,更多的资料即将加入。

php-mbstring:

mbstring库 全称是Multi-Byte String 即各种措辞都有自己的编码,他们的字节数是不一样的,目前php内部的编码只支持ISO-8859-, EUC-JP, UTF-8。

其他的编码的措辞是没办法在php程序上精确显示的。
办理的方法便是通过php的mbstring函数库来办理其安装是在编译php的时候加上--enable-mbstring=?\"大众=\"大众后面便是跟须要支持的措辞,详细参数如下:

--enable-mbstring=cn for Simplified Chinese support, --enable-mbstring=tw for Traditional Chinese support, --enable-mbstring=kr for Korean support, --enable-mbstring=ru for Russian support, and --enable-mbstring=ja for Japanese support.

php-pecl-apcu:

类似于缓存,php-pecl-apcu会有效的提高php实行速率。