基础的 LNMP 架构
L :Linux,N :Nginx,M :MySQL,P :PHP
一.本次实验使用环境
1.使用系统为Centos 7.6,可以使用一下命令查看版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
2.使用Nginx-1.14.0
3.使用MySQL-5.5.20
4.使用PHP-5.6.9
二.安装 LNMP 架构环境
1.先关闭CentOS系统防火墙
[root@localhost nginx-1.14.0]# systemctl stop firewalld
2.安装Nginx-1.14.0
①.安装PCRE库和基础库支持
[root@localhost ~]# yum install pcre-devel pcre gcc-c++ openssl openssl-devel zlib-devel -y
②.下载nginx-1.14.0源码包
[root@localhost ~]# wget -c http://nginx.org/download/nginx-1.14.0.tar.gz
③解压nginx-1.14.0源码包
[root@localhost ~]# tar -xzf nginx-1.14.0.tar.gz
④.创建nginx启动用户
[root@localhost ~]# useradd -s /sbin/nologin nginx
⑤.进入nginx-1.14.0,进行预编译
[root@localhost ~]# cd nginx-1.14.0
[root@localhost nginx-1.14.0]# ./configure
--user=nginx
--group=nginx
--prefix=/data/nginx
--with-http_stub_status_module
--with-http_ssl_module
⑥.编译与编译安装
[root@localhost nginx-1.14.0]# make && make install
⑦.检查nginx配置文件是否正确
[root@localhost nginx-1.14.0]# /data/nginx/sbin/nginx -t
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
⑧启动nginx
[root@localhost nginx-1.14.0]# /data/nginx/sbin/nginx
3.安装MySQL-5.5.20
①.安装编译需要的依赖
[root@localhost ~]# yum install cmake ncurses-devel ncurses libaio bison git gcc-c++ -y
②.下载MySQL-5.5.20源码包
[root@localhost ~]# wget -c http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
③.解压MySQL-5.5.20源码包
[root@localhost ~]# tar -xzf mysql-5.5.20.tar.gz
④.进入MySQL-5.5.20,进行预编译
[root@localhost ~]# cd mysql-5.5.20
[root@localhost mysql-5.5.20]# cmake .
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DMYSQL_DATADIR=/data/mysql \
> -DSYSCONFDIR=/etc \
> -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 \
> -DENABLE_DTRACE=0
⑤.编译与编译安装
[root@localhost mysql-5.5.20]# make && make install
⑥.编辑MySQL文件权限与配置文件,并启动
[root@localhost mysql-5.5.20]# cd /usr/local/mysql55
[root@localhost mysql55]# \cp -f support-files/my-large.cnf /etc/my.cnf
[root@localhost mysql55]# \cp -f support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql55]# chkconfig --add mysqld
[root@localhost mysql55]# chkconfig --level 35 mysqld on
[root@localhost mysql55]# mkdir -p /data/mysql
[root@localhost mysql55]# useradd -s /sbin/nologin mysql
[root@localhost mysql55]# /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/
[root@localhost mysql55]# ln -s /usr/local/mysql55/bin/* /usr/bin/
[root@localhost mysql55]# service mysqld start
4.安装PHP-5.6.9源码包
①.安装编译需要的依赖
[root@localhost ~]# yum install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql-devel -y
②.下载PHP-5.6.9源码包
[root@localhost ~]# wget -c http://museum.php.net/php5/php-5.6.9.tar.gz
③.解压PHP-5.6.9源码包
[root@localhost ~]# tar -xzf php-5.6.9.tar.gz
④.进入PHP-5.6.9源码包,进行预编译
[root@localhost ~]# cd php-5.6.9
[root@localhost php-5.6.9]# ./configure
--prefix=/usr/local/php5
--enable-fpm
--enable-debug
--with-gd
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--enable-mbstring
--with-curl
--with-mysql=/usr/local/mysql55/
--with-mysqli=/usr/local/mysql55/bin/mysql_config
--disable-fileinfo
⑤.编译与编译安装
[root@localhost php-5.6.9]# make && make install
⑥.编辑PHP文件权限与配置文件,并启动
[root@localhost php-5.6.9]# \cp php.ini-development /usr/local/php5/lib/php.ini
[root@localhost php-5.6.9]# \cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
[root@localhost php-5.6.9]# \cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.6.9]# chmod 755 /etc/init.d/php-fpm
[root@localhost php-5.6.9]# chkconfig --add php-fpm
[root@localhost php-5.6.9]# chkconfig php-fpm on
三.修改服务配置文件
1.修改 php-fpm.conf 配置文件
[root@localhost php-5.6.9]# vim /usr/local/php5/etc/php-fpm.conf
25 ;pid = run/php-fpm.pid #原来
25 pid = run/php-fpm.pid #修改为
148 user = nobody #原来
149 group = nginx #修改为
149 group = nobody #原来
148 user = nginx #修改为
2.修改 nginx.conf 配置文件
[root@localhost php-5.6.9]# vim /data/nginx/conf/nginx.conf
修改为
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root /data/nginx/html;
index index.html index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}
四.添加动态页面进行测试
1.在Nginx中添加 index.php 页面
[root@localhost conf]# cat >/data/nginx/html/index.php<<EOF
<?php
phpinfo();
?>
EOF
2.重启 php 与 nginx 服务,使其配置文件生效
[root@localhost nginx]# service php-fpm restart
[root@localhost nginx]# /data/nginx/sbin/nginx -s reload
3.访问 nginx/index.php 测试页面
4.检查 php 能否连接 MySQL 数据库
①.修改MySQL密码
[root@localhost html]# mysql
mysql> grant all on *.* to root@localhost identified by "123";
Query OK, 0 rows affected (0.00 sec)
②.创建 mysql.php 测试页面
Vim /usr/local/nginx/html/mysql.php
<?php
$link=mysql_connect("localhost","root","123");
if(!$link) echo "FAILD!连接错误,用户名密码不对";
else echo "OK!可以连接";
?>
③.测试 mysql.php 页面是否可访问,访问成功说明 PHP与MySQL已连接