centos7下搭建nginx+php7.1+mariadb+memcached+redis


一.環境准備

1.首先介紹一下環境,以及我們今天的主角們

我用的環境是最小化安裝的centos7,mariadb(江湖傳言mysql被oracle收購后,人們擔心像java一樣毀在oracle手上於是成了新的分支,但是還是像mysql一樣用),

php7.1.0(版本無所謂,都是7版本),nginx1.10(我們安裝的是穩定版而沒有一味的追求新),memcached,和redis可以隨機選擇一個,當然全安裝也沒有干擾

2.軟件包下載

1)mariadb軟件包(yum安裝,編譯安裝因為boost問題掛掉了而且耗時極其長,放棄了)

首先添加mariadb的yum源  

cd /etc/yum.repos.d/ vim /etc/yum.repos.d/MariaDB.repo
添加下列內容

# MariaDB 10.0 CentOS repository list - created 2015-08-12 10:59 UTC  
# http://mariadb.org/mariadb/repositories/  
[mariadb]  
name = MariaDB  
baseurl = http://yum.mariadb.org/10.0/centos6-amd64  
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB  
gpgcheck=1   

2)php7.10軟件包

wget https://downloads.php.net/~davey/php-7.1.0.tar.gz

3)nginx軟件包

wget http://nginx.org/download/nginx-1.10.1.tar.gz

nginx還需要下載ngx_http_upstream_consistent_hash(多台緩存服務器的時候使用一致性hash算法需要)

和ngx_http_redis(支持redis)(--add-dynamic-module=PATH時候等於他們的路徑即可)

cd /usr/local/src/
#下載 ngx_http_consistent_hash 和
wget https://codeload.github.com/replay/ngx_http_consistent_hash/zip/master

unzip master

#解壓之后的文件夾名字
ngx_http_consistent_hash-maste
wget  http://people.freebsd.org/~osa/ngx_http_redis-0.3.8.tar.gz

tar zxvf ngx_http_redis-0.3.8.tar.gz

#解壓之后的文件夾名字
ngx_http_redis-0.3.8

 4)memcached軟件包(以及php支持memcached的php7版)(需要libevent libevent-devel)

#memcached
wget http://memcached.org/files/memcached-1.4.31.tar.gz

#memcache for php7
wget https://github.com/websupport-sk/pecl-memcache/archive/php7.zip

 

5)redis軟件包以及redis-php7包

#redis
wget http://download.redis.io/releases/redis-3.2.3.tar.gz

#redis for php7
wget https://codeload.github.com/phpredis/phpredis/zip/php7

 

3.安裝編譯的相關環境以及php等依賴的相關庫

yum update && yum upgrade
yum groupinstall "Development tools"

 

當然下面的代碼和上面的有的重復,不用擔心,安裝過的會略過

yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof libxslt libxslt-devel

 

二、軟件安裝以及配置

0.新建用戶以及文件夾

#創建群組www(nginx,php),mysql(mysql)
groupadd www
groupadd mysql
#創建一個用戶,不允許登陸和不創主目錄 
useradd -s /sbin/false -g www -M www
useradd -s /sbin/false -g mysql -M mysql

#創建web目錄
mkdir -R /var/www/html
chown -R www:www /var/www/

 

1.安裝mariadb

yum -y install MariaDB-server MariaDB-client mariadb-devel

安裝完成后,改my.cnf,重啟

mv /etc/my.cnf  /etc/my.cnf.bak   
cp /usr/share/mysql/my-huge.cnf  /etc/my.cnf

service mysql start  或者   /etc/init.d/mysql restart  重啟  |要是提示找不到  那就用service mariadb start

 

2.編譯安裝php7

當然是先解壓文件
cd /usr/local/src/
tar  zxvf  php-7.1.0.tar.gz
cd php-7.1.0
#需要安裝什么就 ./configure --help | grep mysql(這里只是個例子XXX) 看看他的選項是什么 .
/configure --prefix=/usr/local/php \ --with-curl \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-iconv-dir \ --with-kerberos \ --with-libdir=lib64 \ --with-libxml-dir \ --with-mysqli \ --with-openssl \ --with-pcre-regex \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-pear \ --with-png-dir \
--with-jpeg-dir \
--with-xmlrpc \
 --with-xsl \
--with-zlib \ --enable-embedded-mysqli \ --enable-fpm \ --enable-bcmath \ --enable-libxml \ --enable-inline-optimization \ --enable-gd-native-ttf \ --enable-mbregex \ --enable-mbstring \ --enable-opcache \ --enable-pcntl \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --enable-zip #提示缺啥就安裝什么,或者安裝libXXX-devel
#比如提示我缺少xslt
#我就試着安裝了libXXX libXXX-devel(devel是頭文件)

# yum install libxslt

# yum install libxslt-devel

make && make install

#漫長的等待后成功

 

從編譯目錄中取出php.ini文件(生產環境和開發環境任選其一),注意是lib下,不信事后可查看phpinfo中的Configuration File (php.ini) Path這個選項,將php.ini移入到此位置
cp php.ini-development  /usr/local/php/lib/php.ini

從編譯目錄中將php-fpm放入到etc/init.d/目錄下
cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

到php安裝目錄將兩個需要改名的配置文件改改名字
cd /usr/local/php/etc/

mv php-fpm.conf.default  php-fpm.conf

cd php-fpm.d/

mv www.conf.default www.conf

#修改www.conf的用戶為www

  user = www
  group = www


#啟動
service php-fpm start

3.編譯安裝nginx

進入/usr/local/src/下的目錄,解壓nginx文件不再詳述#添加模塊就是用--add-dynamic-module=模塊解壓的文件夾

 

./configure --prefix=/usr/local/nginx  \
--add-dynamic-module=/usr/local/src/ngx_http_consistent_hash-master  \
--add-dynamic-module=/usr/local/src/ngx_http_redis-0.3.8  \
--with-http_stub_status_module

make && make install

 簡單配置nginx讓其啟動,詳細配置優化我們專門有一篇文章

#user改為www
user www

#添加index.php
 location / {
            root   /var/www/html;
            index  index.php index.html index.htm;
}


#支持php

location ~ \.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
}

#保存退出
#啟動
cd /usr/local/nginx/sbin/
./nginx
#會在/usr/local/nginx/logs/生成一個nginx.pid,以后就可以使用信號量了
ps aux |grep nginx

 

4.編譯安裝redis

解壓,進入目錄不再詳述

#直接編譯安裝就行make && make install

#為redis建立工作目錄

mkdir  /usr/local/redis
#從編譯目錄將配置文件,客戶端,服務器端復制過去
cp redis.conf  /usr/local/redis/
cd  src/
cp redis-cli  redis-server  /usr/local/redis

#簡單配置redis.conf(設置為后台啟動)
cd /usr/local/redis
vim redis.conf
daemonize yes
保存退出

cd /usr/local/redis
#啟動服務器端
./redis-server redis.conf
#啟動客戶端,可以進行各種操作了
./redis-cli

讓php支持redis(php安裝拓展都是千篇一律的,進入加壓后的文件夾中執行phpize,然后./configure 指向php-config,結束會告訴你拓展目錄是啥復制放到php.ini中)

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/loca/php/bin/php-config

vim /usr/local/php/lib/php.ini

在差不多最后的地方添加(memcache的也是一樣,后面不再詳述)

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"   (當然這個目錄是編譯redis拓展完成后提示的地址)

[redis]
extension=redis.so

5.編譯安裝memcached(解壓進入目錄不再詳述)

#因為是yum安裝的libevent,不必再--with-libevent指定libevent
./configure --prefix=/usr/local/memcached
make && make install

#啟動(用戶www , 后台啟動 -d ),www沒有的自己建個
cd /usr/local/memcached/bin
./memcached -u www -d

php支持memcache的拓展(解壓進入目錄)

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/loca/php/bin/php-config

php.ini中添加
[memcache]
extension=memcache.so

#重啟nginx和php-fpm
service php-fpm restart
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM