LNMP WEB架构中,Nginx为一款高性能Web服务器,本身是不能处理PHP的,当接收到客户端浏览器发送HTTP Request请求时,Nginx服务器响应并处理web请求,静态资源CSS、图片、视频、TXT等静态文件请求,Nginx服务器可以直接处理并回应。
但是PHP动态页面请求Nginx不能直接处理,Nginx服务器会将PHP网页脚本通过接口传输协议(网关协议)PHP-FCGI(Fast-CGI)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析PHP脚本信息。PHP解析器进程可以启动多个,可以实现多进行并发执行。
PHP解释器将解析后的脚本返回到PHP-FPM,PHP-FPM再通过Fast-CGI的形式将脚本信息传送给Nginx,Nginx服务器再通过Http Response的形式传送给浏览器,浏览器再进行解析与渲染然后进行呈现
- 安装mysql:
#安装相关依赖
yum install gcc ncurses-devel libaio bison gcc-c++ git cmake ncurses-devel ncurses wget -y
#进入源码下载目录
cd /usr/src
#下载源码
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.60.tar.gz
#解压mysql源码
tar xf mysql-5.5.60.tar.gz
#进入mysql源码目录
cd mysql-5.5.60/
1.1 预编译:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/usr/local/mysql55/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
1.2 编译/安装:
make && make install
1.3 添加系统服务:
cd /usr/src/mysql-5.5.60
\cp support-files/my-large.cnf /etc/my.cnf
\cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
mkdir -p /data/mysql
useradd mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/
ln -s /usr/local/mysql55/bin/* /usr/bin/
chmod a+wrx /etc/init.d/mysqld
2.安装Nginx
#安装相关依赖
yum -y install pcre-devel
#下载源码
wget http://nginx.org/download/nginx-1.16.1.tar.gz
#解压:
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
#预编译:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
#编译/安装
make && make install
#修改nginx进程用户为nginx:
vim /usr/local/nginx/conf/nginx.conf
#创建nginx 用户
useradd nginx
#启动nginx:
/usr/local/nginx/sbin/nginx
- 安装php:
#安装依赖:
yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
#下载源码
wget http://mirrors.sohu.com/php/php-5.6.8.tar.bz2
#解压包:
tar xf php-5.6.8.tar.bz2
cd php-5.6.8
#预编译
./configure --prefix=/usr/local/php \
--enable-fpm \
--enable-debug \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--with-curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=/usr/local/php/etc \
--with-zlib-dir
#编译/安装
make && make install
cp php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
#修改php-fpm的用户为nginx:
vim /usr/local/php/etc/php-fpm.conf
#启动php-fpm:
/etc/init.d/php-fpm start
测试PHP
1.在nginx发布目录下创建index.php 文件
cat >/usr/local/nginx/html/index.php<<EOF
<?php
phpinfo();
?>
EOF
2.修改nginx.conf
vim /usr/local/nginx/conf/nginx.conf
2.重启nginx服务
/usr/local/nginx/sbin/nginx -s reload
3.访问成功界面
部署wordpress网站
1.解压包到nginx发布目录:
tar xf wordpress-4.9.4-zh_CN.tar.gz -C /usr/local/nginx/html/
2.目录所属用户更改为nginx
chown nginx. -R /usr/local/nginx/html/wordpress/
3.创建独立的配置文件
#指定应用的虚拟主机目录(主配置文件http指令块下添加):include vhost/*.conf;
#创建虚拟主机配置目录:
mkdir -p /usr/local/nginx/conf/vhost
#创建虚拟主机配置文件:
vim /usr/local/nginx/conf/vhost/blog.wordpress.com.conf
server {
listen 80;
server_name blog.wordpress.com;
#charset koi8-r;
access_log logs/wordpress.access.log main;
location / {
root html/wordpress;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root html/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4.启动数据库服务:
/etc/init.d/mysqld start
#进入数据库
mysql
#创建数据库
create database wordpress charset utf8;
#授权:
grant all on wordpress.* to "wordpress"@localhost identified by "123456";
#刷新权限
flush privileges;
5.访问wordpress
#在物理机做好hosts解析192.168.2.101 blog.wordpress.com
#安装
.
#访问结果