1 先關(guān)閉防火墻
CentOS 7.0開始默認(rèn)使用的是firewall作為防火墻
先安裝
yum install firewalld
啟動(dòng): systemctl start firewalld
關(guān)閉: systemctl stop firewalld
查看狀態(tài): systemctl status firewalld
firewall-cmd --state #查看默認(rèn)防火墻狀態(tài)(關(guān)閉后顯示notrunning至会,開啟后顯示running)
開機(jī)禁用 : systemctl disable firewalld
開機(jī)啟用 : systemctl enable firewalld
2 關(guān)閉SELINUX
vi /etc/selinux/config
SELINUX=enforcing #注釋掉
SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
以上是重啟之后不起用了蝗茁。?
setenforce 0 #使配置立即生效
3 安裝路徑約定
軟件源代碼包存放位置:/lnmp/src mkdir -p /lnmp/src
源碼包編譯安裝位置:/usr/local/軟件名
數(shù)據(jù)庫(kù)數(shù)據(jù)文件存儲(chǔ)路徑:/data/mysql
4 安裝編譯工具及庫(kù)文件
yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++ cmake gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel libarchive libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* libpng* php-common php-gd gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils bison
5 編譯安裝cmake
cd /lnmp/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd /lnmp/src/cmake-2.8.10.2
./configure --prefix=/usr/local/cmake #安裝前的配置
make #編譯 echo $? 0表示沒有出錯(cuò)
make install #安裝
vim /etc/profile 在path路徑中增加cmake執(zhí)行文件路徑:
export PATH=$PATH:/usr/local/cmake/bin
source /etc/profile使配置立即生效
cmake --version
6 編譯安裝pcel
cd /lnmp/src
wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre && make && make install
7 安裝 libmcrypt
cd /lnmp/src
wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
8 安裝GD庫(kù)
cd /lnmp/src
wget https://jaist.dl.sourceforge.net/project/gd2/gd-2.0.35.tar.gz
tar -zxvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --enable-m4_pattern_allow --prefix=/usr/local/gd --with-jpeg=/usr/lib --with-png=/usr/lib --with-xpm=/usr/lib --with-freetype=/usr/lib --with-fontconfig=/usr/lib
make #編譯
make install #安裝
9 安裝MySQL
groupadd mysql #添加mysql組
useradd -g mysql mysql -s /sbin/nologin #創(chuàng)建用戶mysql并加入到mysql組灰追,不允許mysql用戶直接登錄系統(tǒng)
mkdir -p /data/mysql #創(chuàng)建MySQL數(shù)據(jù)庫(kù)存放目錄
chown -R mysql:mysql /data/mysql #設(shè)置MySQL數(shù)據(jù)庫(kù)目錄權(quán)限
cd /lnmp/src
wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.60.tar.gz
tar -zxvf mysql-5.5.60.tar.gz
cd mysql-5.5.60
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
make
make install
cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf #拷貝配置文件(注意:如果/etc目錄下面默認(rèn)有一個(gè)my.cnf罐呼,直接覆蓋即可)
vi /etc/my.cnf #編輯配置文件,在 [mysqld] 部分增加
datadir = /data/mysql #添加MySQL數(shù)據(jù)庫(kù)路徑
./scripts/mysql_install_db --user=mysql #生成mysql系統(tǒng)數(shù)據(jù)庫(kù)
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系統(tǒng)啟動(dòng)
chmod 755 /etc/init.d/mysqld #增加執(zhí)行權(quán)限
chkconfig mysqld on #加入到服務(wù)里面
vi /etc/rc.d/init.d/mysqld #編輯
basedir=/usr/local/mysql #MySQL程序安裝路徑
datadir=/data/mysql #MySQl數(shù)據(jù)庫(kù)存放目錄
service mysqld start #啟動(dòng),可能無法寫入pid文件盐碱,注意將mysql用戶權(quán)限加入至/usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
service mysqld start #再啟動(dòng)
vi /etc/profile #把mysql服務(wù)加入系統(tǒng)環(huán)境變量:在最后添加下面這一行
export PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin
source /etc/profile #使配置立即生效
mkdir /var/lib/mysql #創(chuàng)建目錄
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加軟鏈接
mysql_secure_installation #設(shè)置Mysql密碼姊氓,先輸入之前密碼(因?yàn)橹皼]有所以直接回車)根據(jù)提示按Y 回車輸入2次密碼
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n] y
# /usr/local/mysql/bin/mysqladmin -u root -p password "123456" #或者直接修改密碼
到此葛家,mysql安裝完成技羔!
10 安裝nginx
cd /lnmp/src
wget http://101.96.8.156/nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
groupadd www #添加www組
useradd -g www www -s /sbin/nologin #創(chuàng)建nginx運(yùn)行賬戶www并加入到www組僵闯,不允許www用戶直接登錄系統(tǒng)
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/lnmp/src/openssl-1.1.0b --with-pcre=/lnmp/src/pcre-8.39 --with-http_ssl_module
注意:--with-pcre=/usr/local/src/pcre-8.39指向的是源碼包解壓的路徑,而不是安裝的路徑藤滥,否則會(huì)報(bào)錯(cuò)
make && make install
/usr/local/nginx/sbin/nginx #啟動(dòng)
/usr/local/nginx/sbin/nginx -s stop #停止
11 安裝php
cd /lnmp/src/
wget http://cn2.php.net/distributions/php-7.2.14.tar.bz2
yum install -y bzip2
tar -jxvf php-7.2.14.tar.bz2
cd php-7.2.14
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mysqlnd --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir --with-freetype-dir --with-pdo-mysql=/usr/local/mysql/
make #編譯,鳖粟,若遇到make: *** [ext/fileinfo/libmagic/apprentice.lo] 錯(cuò)誤 ,這加參數(shù)–-disable-fileinfo
make install #安裝
cp php.ini-production /usr/local/php7/etc/php.ini #復(fù)制php配置文件到安裝目錄
rm -rf /etc/php.ini #刪除系統(tǒng)自帶配置文件
ln -s /usr/local/php7/etc/php.ini /etc/php.ini #添加軟鏈接
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf #拷貝模板文件為php-fpm配置文件
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
vi /usr/local/php7/etc/php-fpm.d/www.conf #編輯
user = www #設(shè)置php-fpm運(yùn)行賬號(hào)為www
group = www #設(shè)置php-fpm運(yùn)行組為www
vim /usr/local/php7/etc/php-fpm.conf
pid = run/php-fpm.pid #取消前面的分號(hào)
加入環(huán)境變量
vim /etc/profile
添加 :/usr/local/php7/bin
:wq
source /etc/profile
設(shè)置 php-fpm開機(jī)啟動(dòng)
cp /lnmp/src/php-7.2.14/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷貝php-fpm到啟動(dòng)目錄
chmod +x /etc/rc.d/init.d/php-fpm #添加執(zhí)行權(quán)限
chkconfig php-fpm on #設(shè)置加入服務(wù)
vi /usr/local/php7/etc/php.ini #編輯配置文件
這里暫時(shí)不給禁用
找到:disable_functions =
修改為:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函數(shù)拙绊,如果某些程序需要用到這個(gè)函數(shù)向图,可以刪除泳秀,取消s禁用
找到:;date.timezone =
修改為:date.timezone = PRC #設(shè)置時(shí)區(qū)
找到:expose_php = On
修改為:expose_php = OFF #禁止顯示php版本的信息
找到:short_open_tag = Off
修改為:short_open_tag = ON #支持php短標(biāo)簽
12 配置nginx支持php
vi /usr/local/nginx/conf/nginx.conf
修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
user www www; #首行user去掉注釋,修改Nginx運(yùn)行組為www www;必須與/usr/local/php/etc/php-fpm.conf中的user,group配置相同榄攀,否則php運(yùn)行出錯(cuò)
user www www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /data/www;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /data/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
:wq
mkdir -p /data/www
chown www:www /data/www/ -R #設(shè)置目錄所有者
chmod 700 /data/www -R #設(shè)置目錄權(quán)限
13 重啟各服務(wù)(nginx還未加入服務(wù))
service restart mysqld
service restart php-fpm
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
14 安裝redis
wget http://120.52.51.15/download.redis.io/releases/redis-4.0.12.tar.gz
tar -zvfx redis-4.0.12.tar.gz
mv redis-4.0.12.tar.gz /usr/local/redis
cd /usr/local/redis/
make && make install
cd /usr/local/redis/src
./redis-server #以默認(rèn)配置文件進(jìn)行啟動(dòng)
redis-cli -h 127.0.0.1 -p 6379 #客戶端連接
vim /usr/local/redis/redis.conf
daemonize yes #修改為yes 守護(hù)進(jìn)程
:wq
./src/redis-server redis.conf #以這個(gè)配置文件啟動(dòng)(有守護(hù)進(jìn)程)
ps aux | grep redis
root 109062 0.1 0.2 145316 2168 ? Ssl 03:14 0:00 ./src/redis-server 127.0.0.1:6379
安裝phpredis 擴(kuò)展(讓php7可以使用redis)
https://github.com/phpredis/phpredis/releases
上傳phpredis-4.2.0.tar.gz到/lnmp/src目錄
tar -zxvf phpredis-4.2.0.tar.gz
cd phpredis-4.2.0
/usr/local/php7/bin/phpize # php安裝后的路徑
./configure --with-php-config=/usr/local/php7/bin/php-config
make && make install
安裝完顯示 Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/
vim /etc/php.ini
增加如下內(nèi)容:
bash extension_dir = " /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/" extension=redis.so
重啟php-fpm
bash service php-fpm restart
查看phpinfo();已有redis