centos6.5安裝nginx+php+mysql

1.nginx 安裝

        查看yum下nginx版本信息php

                 

yum list | grep nginx

                               發現版本過低,手動添加nginx的yum倉庫:css

   

 vi /etc/yum.repos.d/nginx.repo

 

        內容:html

      

[nginx]  
name=nginx repo  
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/  
gpgcheck=0  
enabled=1

        編輯保存以後再查看nginx版本mysql

      安裝:linux

yum install -y nginx

      安裝完成以後能夠經過 service nginx start 來啓動服務nginx

        注:c++

/etc/init.d/nginx start # 啓動Nginx服務
/etc/init.d/nginx stop # 中止Nginx服務
/etc/nginx/nginx.conf # Nginx配置文件位置
#設置nginx隨系統啓動
chkconfig nginx on

        nginx的安裝到此完成,啓動以後能夠在瀏覽器ip訪問,會顯示nginx的頁面web

2.安裝php、php-fpm

2.1 安裝

        先下載php5.6版本,下載的源碼放在/usr/local/src/ 下sql

cd /usr/local/src/
wget http://php.net/distributions/php-5.6.8.tar.gz
tar -xvf php-5.6.8.tar.gz

        編譯php須要一些依賴包:數據庫

yum install -y \
libxml2 \
libxml2-devel \
openssl-devel \
libjpeg \
libjpeg-devel \
libpng \
libpng-devel \
freetype \
freetype-devel \
libmcrypt \
libmcrypt-devel \
mcrypt mhash

        configure:

./configure --prefix=/usr/local/php5 \
--with-config-file-path=/usr/local/php5/etc \
--enable-fpm --disable-ipv6 \
--enable-pdo --with-pdo-mysql \
--with-openssl \
--with-mcrypt \
--with-mhash \
--enable-json \
--enable-mbstring \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-zip

       若是遇到mcrypt出錯信息:

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install

        而後從新執行php configure

         安裝:

make
make install

        安裝完成以後設置fpm

cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf  
vi php-fpm.conf 
# 找到以下幾行,確保以下幾行前沒有」;」 
pid = run/php-fpm.pid 
error_log = log/php-fpm.log 
log_level = notice 
listen = 127.0.0.1:9000 
pm = dynamic 
pm.max_children = 50 
pm.start_servers = 20 
pm.min_spare_servers = 5 
pm.max_spare_servers = 35 
pm.max_requests = 500

    pm表示使用哪一種方式,有兩個值能夠選擇,就是static(靜態)或者dynamic(動態)。在更老一些的版本中,dynamic被稱做apache-like。這個要注意看配置文件的說明。

下面4個參數的意思分別爲:
pm.max_children:靜態方式下開啓的php-fpm進程數量。
pm.start_servers:動態方式下的起始php-fpm進程數量。
pm.min_spare_servers:動態方式下的最小php-fpm進程數量。
pm.max_spare_servers:動態方式下的最大php-fpm進程數量。

若是dm設置爲static,那麼其實只有pm.max_children這個參數生效。系統會開啓設置數量的php-fpm進程。
若是dm設置爲 dynamic,那麼pm.max_children參數失效,後面3個參數生效。  
系統會在php-fpm運行開始 的時候啓動pm.start_servers個php-fpm進程,
而後根據系統的需求動態在pm.min_spare_servers和 pm.max_spare_servers之間調整php-fpm進程數。

利用php自帶的php-fpm管理工具,能夠很方便的start,stop,restart
把管理工具從源碼包裏放到php5/sbin文件夾裏,方便使用

#添加php-fpm到啓動項目錄
cp /usr/local/src/php-5.6.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#設置php-fpm權限
chmod 755 /etc/init.d/php-fpm
#設置自啓動
chkconfig php-fpm start

2.2 配置php session

cd /usr/local/php5/etc
vi php.ini
#搜索 session.save_path , 去掉前面的 ;
session.save_path = "/var/lib/php/session"  ; #此處假定session 保存在 /var/lib/php/session 目錄下
#創建目錄
mkdir -p /var/lib/php/session
chmod -R 777 /var/lib/php/session/  #更改目錄權限

2.3 yum php 5.6 源配置

        (可前往 https://webtatic.com/packages/php56/ 查看)

2.3.1 yum更新

16三、aliyun鏡像的php版本過低,須要對yum源進行更新

CentOS/RHEL 7.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

CentOS/RHEL 6.x:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

 

2.3.2 查看安裝php56命令

    yum list php56*  #能夠查看php5.6的各類包

    執行 yum -y install *** 便可

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

注:70的安裝與此相似。

2.3.3 安裝PHP FPM

     yum install php56w-fpm

3.安裝MYSQL-Server

3.1 Yum安裝

系統自帶的yum庫並無須要版本的mysql,所以先得去mysql官網下載相應的repo對yum庫進行擴展

cd /usr/local/
mkdir yumrepo
cd yumrepo
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum localinstall mysql-community-release-el6-5.noarch.rpm #安裝yum庫
#查看倉庫是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
yum install -y mysql-community-server mysql-community-client mysql-community-dever

安裝成功以後,輸入命令啓動mysql

service mysqld start

第一次啓動會出現一堆提示:

這裏的提示簡單的說就是要咱們用mysqladmin 對root帳戶的密碼進行設置等等。。。

/usr/bin/mysqladmin -u root password '111111' #設置root密碼爲六個1

這個告訴咱們/etc/my.cnf是首次運行生成的mysql配置文件(優化數據庫就須要進這個配置文件配置相關的參數,此處不展開)。

cat /etc/my.cnf

yum 方式安裝到此爲止

3.2 Rpm安裝       

(只針對centos 6.5 64)

        略去查看操做系統版本...

cd /usr/local/src/
mkdir mysql-server-5.6.21

        下載三個rpm軟件包:
            MySQL-client-5.6.21-1.rhel5.x86_64.rpm   
            MySQL-devel-5.6.21-1.rhel5.x86_64.rpm   
            MySQL-server-5.6.21-1.rhel5.x86_64.rpm

cd mysql-server-5.6.21
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.21-1.rhel5.x86_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.21-1.rhel5.x86_64.rpm

        安裝依賴:

yum install -y libaio

        安裝mysql

rpm -ivh MySQL-server-5.6.21-1.rhel5.x86_64.rpm
rpm -ivh MySQL-client-5.6.21-1.rhel5.x86_64.rpm 
rpm -ivh MySQL-devel-5.6.21-1.rhel5.x86_64.rpm

        修改配置文件

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

        初始化mysql

/usr/bin/mysql_install_db

        啓動mysql

service mysql start

        查看進程

ps -ef | grep mysql

    netstat -anpt | grep 3306

        安裝過程當中會隨機生成root密碼並保存在/root/.mysql_secret  文件中,用more命令查看

more /root/.mysql_secret

        而後用查詢的密碼登陸mysql

mysql -uroot -p********   #****爲你查詢到的密碼

        修改密碼

SET PASSWORD = PASSWORD('123456');   #123456 爲你要設置的root密碼

        配置mysqld 啓動mysql

cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
service mysqld start
chkconfig mysqld on    #設置開機啓動

 

 

 

        到此mysql安裝完成

 

4.配置nginx支持php

 

 

cd /etc/nginx/
vi nginx.conf
#打開gzip
gzip    on;

        

注意:

     nginx配置端口可能須要關閉selinux

#
#一、臨時關閉selinux
setenforce 0            ##設置SELinux 成爲permissive模式
setenforce 1    ##設置SELinux 成爲enforcing模式
#
#二、永久關閉selinux
vi /etc/selinux/config 
#將SELINUX=enforcing改成SELINUX=disabled
#重啓機器便可

    

配置vhost,假設域名爲www.a.com

cd /etc/nginx/conf.d/
vi www.a.com.conf
#內容以下
server {
        listen 80;
        server_name www.a.com a.com;
        #讓不帶www的域名跳轉到帶www的域名
        if($host != 'www.a.com') {
                rewrite ^(.*)$ http://www.a.com/$1 permanent;
        }
        location / {
                #開啓ssi支持shtml
                ssi on;
                ssi_silent_errors on;
                ssi_types text/shtml;
                index index.shtml index.php index.htm index.html;
                root /mnt/www/www.a.com;
                #框架路由設置
                if ( !-e $request_filename ) {
                        rewrite ^(.*)$ /index.php?url=$1 last;
                }
        }

        location ~\.php$ {
                root /mnt/www/www.a.com;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

        location ~\.(jpg|jpeg|png|js|css) {
                root /mnt/www/www.a.com;
                expires 30d;
        }

}

        測試一下 配置文件是否有錯誤

/etc/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

        在數據盤mnt上,新建文件夾/mnt/www/www.a.com,並新建info.php測試文件,內容爲

<?php
phpinfo();
?>

        在瀏覽器訪問www.a.com/info.php,能顯示信息則配置完成

ps:

#配置該網站用戶管理
groupadd group_web #group_web 能夠根據我的需求命名
useradd user_web -d /mnt/www/www.a.com
chown user_web:group_web /mnt/www/www.a.com

5.phpMyAdmin 安裝配置

5.0 檢查並修改php對mysql和mysqli支持

        phpinfo() 輸出能夠看到當前php對mysql的支持程度,假設在頁面輸出信息裏面並無找到mysql的支持

cd /usr/local/src/php-5.6.8/ext/mysql
/usr/local/php5/bin/phpize    #執行這句命令生成configure文件
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql=shared --enable-shared

        編譯安裝 make && make install

        mysqli的編譯過程也是相似

cd /usr/local/src/php-5.6.8/ext/mysqli
/usr/local/php5/bin/phpize    #執行這句命令在mysqli目錄下生成configure

        此時能夠查看目錄下是否生成了configure可執行文件

./configure --with-php-config=/usr/local/php5/bin/php-config --enable-embedded-mysqli=shared --enable-shared

        沒有錯誤的話繼續

make
make install

        一切正常的話,此時會提示你 mysqli.so 生成,固然也能夠全盤搜下

find / -name "mysqli.so"
#拷貝 mysql.so mysqli.so 到 php5/ext/
cd /usr/local/php5/
mkdir ext
cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mysqli.so /usr/local/php5/ext/ #mysqli.so 路徑爲上面命令查找所得
cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mysql.so /usr/local/php5/ext/

        切換到php5目錄查看php.ini 是否存在,不存在則拷貝源碼目錄下的

cd /usr/local/php5/etc
vi php.ini
#添加下面內容
extension_dir = "/usr/local/php5/ext";
extension = mysqli.so ;
extension = mysql.so ;

5.1 安裝部署phpMyAdmin     

  下載phpMyAdmin (http://www.phpmyadmin.net/home_page/index.php),解壓後上傳到www目錄下(tar上傳解壓也行),把文件夾重命名爲 phpMyAdmin,(方便訪問)

 cd /mnt/www/phpMyAdmin
cp config.sample.inc.php config.inc.php 
vi config.inc.php
#修改如下內容
$cfg['blowfish_secret'] = 'www.oschina.com';  #這裏的內容隨意設置,在cookie訪問模式下不能爲空
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';  #重要,這裏設置成localhost有可能會出現phpMyAdmin沒法訪問數據庫
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '111111';  #這裏設置數據庫的密碼

        上面的 host = 127.0.0.1 再強調一遍,設置成localhost有可能會沒法訪問數據庫

        接下來就是繼續配置nginx

cd /etc/nginx/conf.d/
vi phpmyadmin.conf
#文件內容
server {
    listen       9090;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    location / {
        ssi on;
        ssi_silent_errors on;
        ssi_types text/shtml;
        root   /mnt/www/phpMyAdmin;
        index  index.html index.htm index.php;
        if ( !-e $request_filename ) {
                        rewrite ^(.*)$ /index.php?url=$1 last;
        }
    }
    location ~\.php$ {
        root           /mnt/www/phpMyAdmin;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
    location ~\.(jpg|jpeg|png|js|css) {
                root /mnt/www/phpMyAdmin;
                expires 30d;
    }
}

        保存退出後,重啓nginx服務,重啓mysqld服務,便可。

 

ex: php擴展安裝

ex1 freetds (linux下支持 mssql)

    一、安裝編譯工具及驅動程序      

yum install make apr* autoconf automake gcc gcc-c++ wget

 

    二、安裝unixODBC驅動程序

yum -y install unixODBC unixODBC-devel

    三、安裝freetds

cd /usr/local/src
       wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.tar.gz
       tar -xvf freetds-1.00.tar.gz
       ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --with-unixodbc=/usr --enable-msdblib
       make && make install  #安裝
       
       echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
       ldconfig

    4.  查看版本信息

/usr/local/freetds/bin/tsql -C

    5. 鏈接mssql 測試  /usr/local/freetds/bin/tsql -H 數據庫服務器IP  -p 端口號 -U 用戶名 -P 密碼

 

ex2 添加PHP擴展mssql和pdo的pdo_dblib

    

cd /usr/local/src/php-5.6.8/ext
cd mssql
phpize   #生成config
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mssql=/usr/local/freetds/

make && make install

cd ../pdo_dblib
phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --with-pdo-dblib=/usr/local/freetds/

make && make install

     在生成目錄下,拷貝相應的so文件到php擴展目錄,而後修改php.ini 便可

相關文章
相關標籤/搜索