搭建LNMP+WordPress博客系統安裝發佈
實驗環境配置:centos7.6 + nginx1.14.2 + mysql-5.6.36 + php-7.2.11
一、NGINX
1.1、NGINX安裝:
>>>>>>安裝依賴包:<<<<<<
[root@ljc-97 ~]# yum install -y pcre-devel openssl-devel
>>>>>>創建一個管理nginx進程的虛擬用戶:<<<<<<
[root@ljc-97 ~]# useradd www -s /sbin/nologin/ -M
>>>>>>編譯配置<<<<<<
[root@ljc-97 ~]# cd /tools/ ---軟件包存放的位置
[root@ljc-97 tools]# tar xf nginx-1.14.2.tar.gz ---解壓
[root@ljc-97 tools]# cd nginx-1.14.2
[root@ljc nginx-1.14.2]# ./configure \
--prefix=/usr/local/nginx-14.2 \
--user=www --group=www \
--with-http_ssl_module \
--with-http_stub_status_module
****末尾 \ 換行符,粘貼時注意,建議複製到記事本先編輯****
[root@ljc nginx-1.14.2]# make && make install
>>>>>>爲nginx程序軟件創建鏈接目錄(升級版本時直接替換就好。)<<<<<<
[root@ljc nginx-1.14.2]# ln -s /usr/local/nginx-14.2 /usr/local/nginx
1.2、啓動NGINX:
[root@ljc nginx-1.14.2]# /usr/local/nginx/sbin/nginx -----啓動nginx
>>>>>>瀏覽器輸入IP地址訪問,出現 welcome to nginx 界面表示安裝成功~<<<<<<
[root@ljc nginx-1.14.2]# /usr/local/nginx/sbin/nginx -s stop ------停止nginx
[root@ljc nginx-1.14.2]# /usr/local/nginx/sbin/nginx -t ------查看配置參數是否正確
>>>>>>編譯配置說明:<<<<<<
--prefix=PATH 指定軟件安裝在什麼目錄下
--user=USER 指定軟件worker進程管理用戶,利用www虛擬用戶管理worker進程
--group=USER 指定軟件worker進程管理組
--with-http_ssl_module 使nginx程序可以支持HTTPsF訪問功能
--with-http_stub_status_module 用於監控用戶訪問nginx服務情況
二 、MySQL
2.1、mysql安裝前期準備:
>>>>>>依賴包準備<<<<<<
***** 1)cmake包,要求2.8以上版本。cmake和configure一樣,mysql是不支持configure的。https://cmake.org/download/
***** 2)boost庫包: boost Boost庫是一個可移植、提供源代碼的C++庫,作爲標準庫的後備,是C++標準化進程的開發引擎之一。https://www.boost.org/
***** 3)mysql包:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
>>>>>>安裝依賴包<<<<<<
[root@ljc-97 ~]# yum -y install ncurses-devel gcc-\* bzip2-\* bison
>>>>>> cmake install 官網下載 cmake<<<<<<
[root@ljc-97 tools]# wget https://github.com/Kitware/CMake/releases/download/v3.14.0-rc4/cmake-3.14.0-rc4.tar.gz
[root@ljc-97 tools]#tar xf cmake-3.14.0-rc4.tar.gz
[root@ljc-97 tools]cd cmake-3.14.0-rc4
[root@ljc-97 cmake-3.14.0-rc4]./configure ----等候時間較長
[root@ljc-97 cmake-3.14.0-rc4]make && make install ---時間更長~~~慢慢等吧~~~
>>>>>>www.ijiiyee.com<<<<<<
說明:結束時候可以echo $?確認是否正確安裝。
輸出結果若爲0,正確安裝,
其他數字,安裝錯誤。
>>>>>> boost 官網下載<<<<<<
[root@ljc-97 tools]tar xf boost_1_59_0.tar.bz2
[root@ljc-97 tools]mv boost_1_59_0 /usr/local/boost
>>>>>> mysql<<<<<<
[root@ljc-97 ~]# mkdir -pv /application/mysql/data
[root@ljc-97 tools]# tar xvf mysql-5.6.36.tar.gz
2.2、安裝mysql
[root@ljc-97 tools]# cd mysql-5.6.36
[root@ljc-97 mysql-5.6.36]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_EMBEDDED_SERVER=1 \
-DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost
[root@ljc-97 mysql-5.6.36]#make && make install
~~~~出門遛個彎,還在make~~~
~~~文中的 \ 問換行符號,建議複製到本地記事本文件編輯後在使用,不然容易報錯~~~
>>>>>>編譯解釋說明<<<<<<
>>>>可按實際生產環境需求增加或減少配置
[root@ljc-97 ~]# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 指定安裝路徑
-DMYSQL_DATADIR=/application/data/ 指定數據目錄
-DMYSQL_UNIX_ADDR=/application/mysql/mysql.sock 指定sock文件路徑
-DWITH_INNOBASE_STORAGE_ENGINE=1 安裝Innodb存儲引擎
-DWITH_MYISAM_STORAGE_ENGINE=1 安裝myisam存儲引擎
-DENABLED_LOCAL_INFILE=1 允許使用Load data命令從本地導入數據
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 安裝所有字符集、默認字符集utf-8 、校驗字符
-DMYSQL_USER=mysql mysql用戶名
-DWITH_DEBUG=0 關閉debug
-DWITH_EMBEDDED_SERVER=1 生成一個libmysqld.a(.so)的庫,這個庫同時集成了mysql服務與客戶端API
-DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost 允許boost 允許下載boost庫文件
2.3安裝後操作
>>>>>>拷貝一個啓動文件,並建立軟連接<<<<<<
[root@ljc-97 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@ljc-97 ~]# useradd -s /sbin/nologin -r mysql
[root@ljc-97 ~]# chmod 755 /etc/init.d/mysql
[root@ljc-97 ~]# chown mysql.mysql /usr/local/mysql/ -R
[root@ljc-97 ~]# ln -sf /usr/local/mysql/bin/* /usr/bin/
[root@ljc-97 ~]# ln -sf /usr/local/mysql/lib/* /usr/lib/
[root@ljc-97 ~]# ln -sf /usr/local/mysql/libexec/* /usr/local/libexec
[root@ljc-97 ~]# ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1
[root@ljc-97 ~]# ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8
>>>>>>修改配置文件(etc/my.cnf)<<<<<<
[root@ljc-97 ~]# egrep -v "^#|^$" /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql ----mysql安裝位置
datadir=/usr/local/mysql/data ----mysql數據存放位置
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql.log ----mysql錯誤日誌
pid-file=/var/run/mysql.pid
!includedir /etc/my.cnf.d
>>>>>>初始化數據庫<<<<<<
--------mysql 3.7版本:
[root@ljc-97 mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
--------mysql 3.6版本:
[root@ljc-97 ~]# cd /usr/local/mysql/scripts/
[root@ljc-97 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
>>>>>>mysql 5.7版本:執行完出現臨時密碼需記住然後修改<<<<<<
root@localhost: nU>BeWw>8Hi#
>>>>>>mysql 5.6版本不出現密碼,後續直接設置密碼。<<<<<<
>>>>>>mysql 5.6版本設置密碼:<<<<<<
[root@ljc-97 ~]# mysqladmin -uroot password 'ljc123'
2.4、啓動mysql
[root@ljc-97 ~]# /etc/init.d/mysql start
三、PHP安裝部署:
3.1、安裝依賴包
[root@ljc-97 ~]# yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd net-snmp-* -y
[root@ljc-97 local]# cd /usr/src/ ----------PHP壓縮包存放位置
[root@ljc-97 ~]# tar xf php-7.2.11.tar.gz
[root@ljc-97 src]# cd php-7.2.11/
>>>>>>以下編譯參數較多,可按需增減,也可直接用生產環境<<<<<<
------文中的 \ 換行符號,建議複製到本地記事本文件編輯後在使用,不然容易報錯----
[root@ljc-97 php-7.2.11]# ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysqli=mysqlnd --enable-embedded-mysqli \
--with-mysql-sock=/usr/local/mysql/ \
--enable-pdo --with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/ \
--enable-fpm --with-fpm-user=www --with-fpm-group=www \
--with-pcre-regex --with-zlib --with-bz2 --with-zlib-dir \
--enable-zip --enable-calendar \
--disable-phar --with-curl --enable-dba \
--with-libxml-dir --enable-ftp --with-gd \
--with-jpeg-dir --with-png-dir --with-freetype-dir \
--enable-gd-jis-conv --with-mhash --enable-mbstring \
--enable-opcache=yes --enable-pcntl --enable-xml \
--disable-rpath --enable-shmop --enable-sockets \
--enable-bcmath --with-snmp --disable-ipv6 \
--with-gettext --disable-debug
>>>>>>參數解釋<<<<<<
--prefix=/usr/local/php 安裝路徑
--with-config-file-path=/usr/local/php/etc 配置文件路徑
--with-mysqli=mysqlnd --enable-embedded-mysqli --with-mysql-sock=/usr/local/mysql/ 對mysql支持
--enable-pdo --with-pdo-mysql=mysqlnd 對PHP的pdo擴展庫支持
--with-iconv-dir=/usr/local/ 字符集轉碼工具
--enable-fpm --with-fpm-user=www --with-fpm-group=www 對PHP的服務php-fpm支持,用戶是www,組是www
--with-pcre-regex 對pcre的支持
--with-zlib --with-bz2 --with-zlib-dir --enable-zip 對壓縮的支持
--enable-calendar 打開日曆擴展功能
--disable-phar
--with-curl 對curl工具的支持
--enable-dba
--with-libxml-dir
--enable-ftp
--with-gd --with-jpeg-dir --with-png-dir 對圖片的支持
--with-freetype-dir 打開對freetype字體庫的支持
--enable-gd-jis-conv
--with-mhash mhash算法的支持
--enable-mbstring 多字節,字符串的支持
--enable-opcache=yes
--enable-pcntl freeTDS需要用到的,可能是鏈接mssql 纔用到
--enable-xml
--disable-rpath 關閉額外的運行庫文件
--enable-shmop
--enable-sockets 打開 sockets 支持
--enable-bcmath 打開圖片大小調整
--with-snmp --disable-ipv6
--with-gettext 打開gnu 的gettext 支持,編碼庫用到
--disable-debug 關閉調試模式
>>>>>>編譯安裝<<<<<<
[root@ljc-97 php-7.2.11]# make && make install
3.2、 PHP web環境部署
[root@ljc-97 etc]# pwd
/usr/local/php/etc
[root@ljc-97 etc]# cp php-fpm.conf.default php-fpm.conf
[root@ljc-97 etc]# vim php-fpm.conf
[root@ljc-97 etc]# egrep -v "^;|^$" /usr/local/php/etc/php-fpm.conf
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
daemonize = yes
include=/usr/local/php/etc/php-fpm.d/*.conf
[root@ljc-97 etc]# cd php-fpm.d/
[root@ljc-97 php-fpm.d]# ls
www.conf.default
[root@ljc-97 php-fpm.d]# pwd
/usr/local/php/etc/php-fpm.d
[root@ljc-97 php-fpm.d]# cp www.conf.default www.conf
[root@ljc-97 php-fpm.d]# vim www.conf
[root@ljc-97 php-fpm.d]# egrep -v "^;|^$" /usr/local/php/etc/php-fpm.d/www.conf
[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
>>>>>>複製啓動文件<<<<<<
[root@ljc-97 php-fpm.d]# cp /usr/src/php-7.2.11/sapi/fpm/php-fpm.service /etc/systemd/system/
[root@ljc-97 php-fpm.d]# chmod 755 /etc/systemd/system/php-fpm.service
[root@ljc-97 php-fpm.d]# systemctl daemon-reload ----重載下
[root@ljc-97 php-fpm.d]# systemctl start php-fpm.service -----開啓php-fpm
[root@ljc-97 php-fpm.d]# lsof -i :9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 129771 root 6u IPv4 100851 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 129772 www 8u IPv4 100851 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 129773 www 8u IPv4 100851 0t0 TCP localhost:cslistener (LISTEN)
3.3、 nginx和PHP關聯
[root@ljc-97 php-fpm.d]# vim /usr/local/nginx/conf/nginx.conf
user www; 用戶爲www
location / {
root html;
index index.php index.html index.htm; ------此處增加index.php
}
location ~ \.php$ { -----------此行開始刪除註釋
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
----修改php在編譯產生的腳本臨時文件存放位置:/usr/local/nginx/html ----
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
3.4、生成測試頁面
[root@ljc-97 html]# cat phpinfo.php
<?php
phpinfo();
?>
3.5、瀏覽器打開nginx的ip:
http://10.0.0.97/phpinfo.php
出現PHP頁面表示安裝成功,可以查看到編譯參數
四、 部署WordPress
4.1、解壓複製tar包
[root@ljc-97 tools]# tar xf wordpress-4.7.3-zh_CN.tar.gz
[root@ljc-97 wordpress]# ls
index.php wp-blog-header.php wp-includes wp-settings.php
license.txt wp-comments-post.php wp-links-opml.php wp-signup.php
readme.html wp-config-sample.php wp-load.php wp-trackback.php
wp-activate.php wp-content wp-login.php xmlrpc.php
wp-admin wp-cron.php wp-mail.php
>>>>>>移動所有文件到nginx的html目錄下<<<<<<
[root@ljc-97 tools]# mv wordpress/* /usr/local/nginx/html/
[root@ljc-97 local]# chown www.www nginx/ -R ###修改nginx用戶,組都爲www
[root@ljc-97 html]# pwd
/usr/local/nginx/html
[root@ljc-97 html]# rm -f index.html ###刪除nginx默認頁面
[root@ljc-97 html]# head -1 ../conf/nginx.conf ###修改nginx用戶爲www
user www;
4.2、配置過程
>>>>>>瀏覽器打開輸入10.0.0.97出現wordpress配置頁面<<<<<<
設置:
數據庫名:wordpress
用戶名:root
密碼:ljc123
數據庫主機:127.0.0.1
>>>>>>點擊下一步發現報錯,原因:本地未建立wordpress數據庫<<<<<<
進入服務器配置頁面進入數據庫:
[root@ljc-97 html]# mysql -uroot -pljc123
新建wordpress庫
mysql> create databases wordpress;
--------此時wordpress庫中內容爲空
--------瀏覽器側安裝wordpress成功後,可看見庫中的內容
mysql> use wordpress;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_wordpress |
+-----------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+-----------------------+
12 rows in set (0.00 sec)
回到瀏覽器界面,再次配置,可成功安裝wordpress
到此lnmp環境+wordpress博客系統就安裝完成啦,可自定義wordpress中的主題,插件等等功能,各模塊功能大家自行研究~~~~~
轉載自:只是個小運維