前期準(zhǔn)備:
關(guān)閉防火墻于selinux:
iptables -F #關(guān)閉防火墻
setenforce 0 #關(guān)閉selinux
getenforce #查看selinux狀態(tài)
vim /etc/selinux/config #在配置文件中修改selinux
[root@localhost html]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #改成disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
:wq
下載源碼包:
將源碼包下載到/usr/local/src路徑中,源碼包可以在軟件官網(wǎng)中有下載,這里不再一一列出下載地址,需要下載的源碼包有mysql,nginx,php,wordpress.
[root@localhost src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-5.6.30 wordpress-4.9.4-zh_CN.tar.gz
nginx-1.12.1 php-5.6.30.tar.gz
mysql-5.6.35-linux-glibc2.5-x86_64 nginx-1.12.1.tar.gz wordpress
開發(fā)環(huán)境與編譯工具:
yum -y groupinstall Development Tools
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel libxml2*
1.安裝mysql并配置:
查看并刪除系統(tǒng)的mysql服務(wù):
rpm -qa | grep mysql #如果查詢到mysql,就是用rpm -e命令來卸載了原來的mysql
rm -rf /etc/my.cnf #刪除原來mysql的配置文件
解壓并復(fù)制文件:
tar -zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz #在下載目錄中解壓文件
mkdir /usr/local/mysql #創(chuàng)建安裝目錄,方便以后管理
cp -R ./mysql-5.6.35-linux-glibc2.5-x86_64/* /usr/local/mysql/ #復(fù)制解壓文件的目錄中
切換目錄并安裝:
#使用cmake工具進(jìn)行安裝mysql
cd /usr/local/mysql/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make install
創(chuàng)建數(shù)據(jù)目錄,執(zhí)行用戶并執(zhí)行初始化腳本:
#初始化腳本
mkdir /data
useradd -s /sbin/nologin mysql
chmod +x ./scripts/mysql_install_db
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
復(fù)制配置文件并配置:
#配置文件及啟動(dòng)腳本
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysql.server
chmod 755 /etc/init.d/mysql.server
在`vim /etc/my.cnf`配置如下:
[root@localhost mysql]# vim /etc/my.cnf
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
datadir =/data/mysql #添加這個(gè)數(shù)據(jù)存放路徑
# port = .....
# server_id = .....
# socket = .....
socket = /var/lib/mysql/mysql.sock #還有這個(gè),其他暫時(shí)不用動(dòng)
...省略...
:wq
啟動(dòng)mysql并初始設(shè)置:
/etc/init.d/mysql.server start #啟動(dòng)mysql
/usr/local/mysql/bin/mysql_secure_installation #初始設(shè)置,包含root密碼設(shè)置等等
檢查服務(wù)是否啟動(dòng):
[root@localhost html]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7102/nginx: master
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1427/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1032/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1026/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1268/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 7304/sshd: root@pts
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 7304/sshd: root@pts
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1032/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1026/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1268/master
tcp6 0 0 ::1:6010 :::* LISTEN 7304/sshd: root@pts
tcp6 0 0 ::1:6011 :::* LISTEN 7304/sshd: root@pts
tcp6 0 0 :::3306 :::* LISTEN 39096/mysqld
#3306已經(jīng)啟動(dòng)監(jiān)聽
看到mysql啟動(dòng)了就算安裝mysql完成了.
2.安裝php并配置:
解壓并進(jìn)入目錄:
cd /usr/local/src/ #進(jìn)入下載目錄
tar -zxvf php-5.6.30.tar.gz
cd php-5.6.30/ #進(jìn)入解壓目錄
添加用戶并編譯安裝:
#添加php-fpm用戶
useradd -s /sbin/nologin php-fpm
#可以通過./configure --help來按需要進(jìn)行添加編譯選項(xiàng)
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock
make && make install
復(fù)制配置文件并設(shè)置權(quán)限:
#復(fù)制配置文件及啟動(dòng)腳本
cp php.ini-production /usr/local/php-fpm/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
創(chuàng)建配置文件:
創(chuàng)建vim /usr/local/php-fpm/etc/php-fpm.conf
,內(nèi)容如下:
[root@localhost php-5.6.30]# vim /usr/local/php-fpm/etc/php-fpm.conf
[global]
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock #監(jiān)聽ip和端口翅萤,端口默認(rèn)為9000
listen.mode = 666 #用來定義php-fcgi.sock文件的權(quán)限
user = php-fpm
group = php-fpm
pm = dynamic #后面這些都是關(guān)于進(jìn)程的信息
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
:wq
檢查配置文件并啟動(dòng):
/usr/local/php-fpm/sbin/php-fpm -t
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
檢查服務(wù)是否啟動(dòng):
[root@localhost src]# ps aux | grep php
root 3023 0.0 0.1 55896 3492 ? Ss Jun09 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 3024 0.0 0.5 62032 9940 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3025 0.0 0.4 61264 8940 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3026 0.0 0.5 61836 11016 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3027 0.0 0.6 64164 11620 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3028 0.0 0.5 62116 9772 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3029 0.0 0.5 61580 10912 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3030 0.0 0.4 59300 8432 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3031 0.0 0.2 58292 5380 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3032 0.0 0.6 64164 11620 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3033 0.0 0.4 61256 8912 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3034 0.0 1.5 81572 29416 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3035 0.0 0.5 61580 10924 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3036 0.0 1.3 76660 25900 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3037 0.0 0.6 62248 11820 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3038 0.0 0.5 61580 10912 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3039 0.0 0.6 62500 12120 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3040 0.0 0.4 59300 8428 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3041 0.0 0.5 62116 9776 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3042 0.0 0.6 64452 12880 ? S Jun09 0:00 php-fpm: pool www
php-fpm 3043 0.0 0.5 62116 9772 ? S Jun09 0:00 php-fpm: pool www
root 8573 0.0 0.0 112708 976 pts/3 S+ 00:12 0:00 grep --color=auto php
這里看到php已經(jīng)啟動(dòng),說明安裝成功了.
3.安裝并配置nginx:
解壓并進(jìn)入目錄:
cd /usr/local/src/ #進(jìn)入下載目錄
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1/
編譯安裝:
#可以使用./configure --help查看更多信息
./configure --prefix=/usr/local/nginx
make && make install
創(chuàng)建啟動(dòng)腳本并修改權(quán)限:
在vim /etc/init.d/nginx中創(chuàng)建腳本
chkconfig
這個(gè)和下面的選項(xiàng)好正確,否則會(huì)報(bào)service nginx does not support chkconfig的錯(cuò)誤,
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
:wq
chmod 755 /etc/init.d/nginx
加入服務(wù)列表并開機(jī)啟動(dòng):
chkconfig --add nginx
chkconfig nginx on
修改nginx.conf文件:
在/usr/local/nginx/conf/目錄下修改nginx.conf文件,為了保證安全先備份原來conf文件并創(chuàng)建新的配置文件.
mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
配置新的vim /usr/local/nginx/conf/nginx.conf文件,內(nèi)容如下:
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 6000;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
}
:wq
檢查配置文件語法錯(cuò)誤并啟動(dòng)服務(wù):
/usr/local/nginx/sbin/nginx -t
service nginx start
檢查服務(wù)是否啟動(dòng):
[root@localhost src]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7102/nginx: master
到這里L(fēng)NMP已經(jīng)搭建完成了,可以測試一下
測試LNMP環(huán)境:
在/usr/local/nginx/html/目錄中添加一個(gè)test.php 的文件,內(nèi)容如下:
[root@localhost php-5.6.30]# vim /usr/local/nginx/html/test.php
<?php
phpinfo();
?>
:wq
通過客戶端訪問LNMP服務(wù)器,結(jié)果如下:
證明LNMP已經(jīng)搭建完成了.
4.安裝wordpress:
解壓并復(fù)制文件:
進(jìn)入下載目錄并解壓
cd /usr/local/src
tar -zxvf wordpress-4.9.4-zh_CN.tar.gz
刪除nginx服務(wù)主頁目錄/usr/local/nginx/html/中的所有文件,并將解壓目錄的文件全部復(fù)制過去
rm -rf /usr/local/nginx/html/*
cp -a /usr/local/src/wordpress/* /usr/local/nginx/html/
在mysql中設(shè)置wordpress的賬號(hào)密碼,數(shù)據(jù)庫:
登陸mysql
/usr/local/mysql/bin/mysql -uroot -p
設(shè)置用戶密碼權(quán)限等等
mysql> GRANT ALL ON wordpress.* TO 'wpuser'@'%' IDENTIFIED BY 'wppass'; #設(shè)置用戶密碼權(quán)限
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE wordpress; #創(chuàng)建wordpress數(shù)據(jù)庫
復(fù)制配置文件模版并配置:
cd /usr/local/nginx/html/
cp wp-config-sample.php wp-config.php #配置文件名稱不要改其他的,會(huì)報(bào)錯(cuò)
[root@localhost html]# vim wp-config.php
/**#@+
* 身份認(rèn)證密鑰與鹽级乍。
*
* 修改為任意獨(dú)一無二的字串其爵!
* 或者直接訪問{@link https://api.wordpress.org/secret-key/1.1/salt/
* WordPress.org密鑰生成服務(wù)}
* 任何修改都會(huì)導(dǎo)致所有cookies失效驻啤,所有用戶將必須重新登錄。
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/
/**
* WordPress數(shù)據(jù)表前綴替劈。
*
* 如果您有在同一數(shù)據(jù)庫內(nèi)安裝多個(gè)WordPress的需求棒拂,請(qǐng)為每個(gè)WordPress設(shè)置
* 不同的數(shù)據(jù)表前綴莱坎。前綴名只能為數(shù)字、字母加下劃線糙箍。
*/
$table_prefix = 'wp_';
* * ABSPATH
*
* @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
*
* @package WordPress
*/
// ** MySQL 設(shè)置 - 具體信息來自您正在使用的主機(jī) ** //
/** WordPress數(shù)據(jù)庫的名稱 */
define('DB_NAME', 'wordpress'); #改為數(shù)據(jù)庫的名稱
/** MySQL數(shù)據(jù)庫用戶名 */
define('DB_USER', 'wpuser'); #改為數(shù)據(jù)庫用戶名
/** MySQL數(shù)據(jù)庫密碼 */
define('DB_PASSWORD', 'wppass'); #數(shù)據(jù)庫的密碼
/** MySQL主機(jī) */
define('DB_HOST', 'localhost'); #允許訪問的主機(jī)地址
/** 創(chuàng)建數(shù)據(jù)表時(shí)默認(rèn)的文字編碼 */
define('DB_CHARSET', 'utf8');
/** 數(shù)據(jù)庫整理類型渤愁。如不確定請(qǐng)勿更改 */
define('DB_COLLATE', '');
/**#@+
* 身份認(rèn)證密鑰與鹽。
*
...省略...
:wq
客戶端登陸wordpress論壇:
配置完成了就 可以通過客戶端去登陸論壇,按頁面提示來操作就可以了,
填寫相應(yīng)的信息,包括之前數(shù)據(jù)庫創(chuàng)建的用戶密碼,自己的郵箱等等,格式正確就可以點(diǎn)安裝wordpress了
安裝成功直接點(diǎn)登錄
用戶和密碼正確了,就可以看到論壇的先過出來了.到這里就全部完成了LNMP+wordpress的搭建了