前言:
之前的博文寫過分佈式安裝LAMP搭建Discuz
https://blog.csdn.net/weixin_43815140/article/details/105031305
和rpm搭建nginx,mysql,php於一身的lnmp
‘
https://blog.csdn.net/weixin_43815140/article/details/105163108
今天搞個分開部署的lnmp
所需環境:
再做之前,先開放端口或者關閉防火牆和selinux,以免無法訪問。
名稱 | IP |
---|---|
nginx-1.16.1(centos7.2) | 192.168.10.2 |
mysql-5.6(centos7.2) | 192.168.10.4 |
php7.2(centos7.2) | 192.168.10.6 |
測試機 | 192.168.10.3 |
在192.168.10.2安裝nginx
1>// 編輯官方yum源
[root@nginx~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@nginx ~]#
2>//yum安裝nginx
[root@nginx~]# yum -y install nginx
[root@nginx~]# systemctl start nginx
[root@nginx~]# systemctl enable nginx
3>//測試nginx是否可以訪問
[root@localhost ~]# curl http://192.168.10.2
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
ok,nginx已經安裝好,現在安裝mysql
在192.168.10.4安裝mysql
1>//使用本地rpm包安裝mysql,拷貝到/my目錄
[root@mysql ~]# cd /my
[root@mysql my]# ls
mysql-community-client-5.6.47-2.el7.x86_64.rpm
mysql-community-common-5.6.47-2.el7.x86_64.rpm
mysql-community-libs-5.6.47-2.el7.x86_64.rpm
mysql-community-server-5.6.47-2.el7.x86_64.rpm
perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm
perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm
perl-Data-Dumper-2.145-3.el7.x86_64.rpm
perl-DBI-1.627-4.el7.x86_64.rpm
perl-IO-Compress-2.061-2.el7.noarch.rpm
perl-Net-Daemon-0.48-5.el7.noarch.rpm
perl-PlRPC-0.2020-14.el7.noarch.rpm
[root@mysql my]#
2>//安裝mysql
[root@mysql my]# yum -y localinstall /my/*
[root@mysql my]# systemcal start mysqld
3>//監聽端口,確認是否開啓
[root@lnmp ~]# netstat -anpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 3634/mysqld
[root@localhost ~]#
4>//給MySQL設置密碼
[root@lnmp ~]# mysql_secure_installation #根據提示修改密碼爲123.com
[root@lnmp ~]# mysql -uroot -p'123.com' #登錄mysql
在192.168.10.6安裝PHP
1>//準備第三方epel擴展源
[root@phpserver ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@phpserver ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
2>//安裝PHP7.2
[root@lnmp ~]# yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache
3>//安裝完成後,先不着急開啓,修改/etc/php-fpm.d/www.conf
文件
[root@phpserver ~]# cat /etc/php-fpm.d/www.conf | grep -v '^;' | grep -v '^$'
[www]
user = php
group = php
listen = 192.168.10.6:9000
listen.allowed_clients = 192.168.10.2
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
注意:listen = 192.168.10.6:9000
指向本機監聽php-fpm;
listen.allowed_clients = 192.168.10.2
指向nginx主機
4>//開啓php-fpm,監聽端口
[root@phpserver ~]# systemctl start php-fpm
[root@phpserver ~]# netstat -anpt | grep php-fpm
tcp 0 0 192.168.10.6:9000 0.0.0.0:* LISTEN 38364/php-fpm: mast
配置nginx配置文件,使其能與php協同工作,nginx
處理一些靜態頁面請求,php處理動態請求
編輯nginx配置文件
修改/etc/nginx/conf.d/blog.conf
虛擬主機文件(conf.d下存放的是虛擬主機文件,以這個爲例。)
[root@nginx ~]# vim /etc/nginx/conf.d/blog.conf
server {
listen 80;
server_name blog.benet.com; #網站域名
root /www; #網站根目錄
index index.php index.html; #索引頁
location ~ \.php$ {
root /www;
fastcgi_pass 192.168.10.6:9000; #寫php-fpm的地址,轉發給它工作
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
~
注意:$document_root和root 屬性一樣,也可以用/wordpress代替。
客戶端修改/etc/hosts
文件,使其能域名解析到192.168.10.2
php創建info.php測試頁,客戶端訪問測試
[root@phpserver ~]# cat /wordpress/info.php
<?php
phpinfo();
?>
[root@localhost ~]#
和之前一樣,搭建個WordPress小博客網站,需要把源碼包拷貝到nginx和php裏,解壓授權
創建數據庫並給用戶授權
mysql> create database blog;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on blog.* to lisi@'192.168.10.%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
創建網站根目錄/www,源碼包解壓後移動到這裏(下面步驟nginx,php都要做),因爲/www目錄爲網站根目錄,不知道里面會有什麼文件,靜態就交給nginx處理,動態交給php。
mkdir /www
unzip wordpress-4.9.4-zh_CN.zip
mv /wordpress/* /www
chmod -R 777 /www
客戶端測試,訪問blog.benet.com
根據提示安裝就好