環境介紹:php
操做系統:CentOS6.5 64位版本html
Http服務器軟件:Apache2.4.9mysql
PHP版本:PHP5.6.30linux
數據庫軟件:Mysql5.6.16c++
軟件安裝序:正則表達式
Apache---->Mysql---->PHPsql
1、Apache安裝數據庫
安裝須要的軟件下載地址:apache
1)下載apr: http://apr.apache.org/ 2)下載apr-util: http://apr.apache.org/ 3) 下載pcre: http://www.pcre.org/ 4)下載httpd: http://httpd.apache.org/
以上全部軟件集合包整理 下載地址: 連接:http://pan.baidu.com/s/1skOlVdF 密碼:u4bzbootstrap
1.安裝linux軟件必備經常使用庫
在CentOS安裝軟件的時候,可能缺乏一部分支持庫,而報錯。這裏首先安裝系統經常使用的支持庫。那麼在安裝的時候就會減小不少的錯誤的出現。
# yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel
2.配置防火牆及80端口
修改防火牆配置:
# vi + /etc/sysconfig/iptables
添加配置項 (同時打開3306端口以供後面mysql使用)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重啓防火牆
# service iptables restart
3安裝軟件
3.1安裝apr
# cd /usr/local/src/apache # tar zxvf apr-1.5.1.tar.gz # cd apr-1.5.1
# ./configure --prefix=/usr/local/apr
# make
4)安裝
# make install
3.2安裝apr-util
1)解壓
# cd /usr/local/src/apache # tar zxvf apr-util-1.5.3.tar.gz # cd apr-util-1.5.3
2)配置
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
# make
# make install
3.3正則表達式庫安裝
1)解壓pcre-8.12.tar.gz
# cd /usr/local/src/apache # tar zxvf pcre-8.12.tar.gz
2)進入解壓後的目錄
# cd pcre-8. 12
3)配置
# ./configure
編譯
# make
# make install
3.4安裝Apache
1)解壓 # cd /usr/local/src/apache # tar -zvxf httpd-2.4.tar.gz # cd httpd-2.4.9 2)編譯 # mkdir -p /usr/local/apache2 # ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl --enable-ssl --enable-module=so --enable-rewrite --enable-cgid --enable-cgi 3)編譯 # make 4)安裝 # make install
4 Apache配置
4.1 配置ServerName
# vi /usr/local/apache2/conf/httpd.conf 找到:#ServerName www.example.com:80 修改成:ServerName localhost:80
4.2 配置DirectoryIndex
# vi /usr/local/apache2/conf/httpd.conf 找到:DirectoryIndex index.html 修改成:DirectoryIndex index.html index.php
**4.3 配置不顯示目錄結構 **
# vi /usr/local/apache2/conf/httpd.conf 找到:Options Indexes FollowSymLinks 修改成:Options FollowSymLinks
4.4 開啓apache支持僞靜態
# vi /usr/local/apache2/conf/httpd.conf 找到AllowOverride None 修改成:AllowOverride All #開啓apache支持僞靜態,有三處都作修改 LoadModule rewrite_module modules/mod_rewrite.so #取消前面的註釋,開啓apache支持僞靜態
4.5 添加apache服務系統環境變量
vi /etc/profile #添加apache服務系統環境變量 在最後添加下面這一行 export PATH=$PATH:/usr/local/apache2/bin
4.6 把apache加入到系統啓動
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd # vi /etc/init.d/httpd 在#!/bin/sh下面添加如下兩行 #chkconfig:2345 10 90 #description:Activates/Deactivates Apache Web Server
4.7 更改目錄全部者與權限
#chown daemon.daemon -R /usr/local/apache2/htdocs #更改目錄全部者 #chmod 700 /usr/local/apache2/htdocs -R #更改apache網站目錄權限
4.8 設置開機啓動
# chkconfig httpd on
4.9 啓動中止重啓
1)啓動
# service httpd start
2)中止
# service httpd stop
3)重啓
# service httpd restart
4)查看端口狀態
# netstat -an | grep 80
可能出現的錯誤 訪問主機403錯誤
<VirtualHost 127.0.0.1:80> ServerName mypro ServerAlias mypro DocumentRoot "d:/mypro" DirectoryIndex index.html index.php </VirtualHost> <Directory "d:/mypro"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory>
添加Require all granted
2、安裝Mysql
1.安裝編譯mysql須要的庫和工具(本文開篇已經安裝)
2.安裝cmake並編譯安裝
#wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz #tar -xzvf cmake-2.8.10.2.tar.gz #cd cmake-2.8.10.2 #./bootstrap ; make ; make install #cd ~
若上面下載失敗能夠經過連接:http://pan.baidu.com/s/1dEBJjzj 密碼:dhhx 下載,ftp上傳至服務器
3.新建MySQL所須要的目錄
新建mysql安裝目錄
#mkdir -p /usr/local/mysql
新建mysql數據庫數據文件目錄
#mkdir -p /data/mysqldb
4.下載MySQL源碼包並解壓
wget http://dev.mysql.com/downloads/mysql/mysql-5.6.16.tar.gz tar -zxv -f mysql-5.6.16.tar.gz cd mysql-5.6.16
因爲如今mysql已經不提供5.6.16的下載了,能夠經過連接:http://pan.baidu.com/s/1i4Q4fvn 密碼:duff 下載,ftp上傳至服務器
5.編譯安裝MySQL
#cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/data/mysqldb \ -DMYSQL_TCP_PORT=3306 \ -DENABLE_DOWNLOADS=1
上面命令的解釋 -DCMAKE_INSTALL_PREFIX=dir_name 設置mysql安裝目錄
-DMYSQL_UNIX_ADDR=file_name 設置監聽套接字路徑,這必須是一個絕對路徑名。默認爲/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 設置服務器的字符集。 缺省狀況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_sets.cmake文件包含容許的字符集名稱列表。
-DDEFAULT_COLLATION=collation_name 設置服務器的排序規則。
**-DWITH_INNOBASE_STORAGE_ENGINE=1 **
-DWITH_ARCHIVE_STORAGE_ENGINE=1
**-DWITH_BLACKHOLE_STORAGE_ENGINE=1 **
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存儲引擎選項:
MyISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,並不須要明確地安裝。
靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name 設置mysql數據庫文件目錄
-DMYSQL_TCP_PORT=port_num 設置mysql服務器監聽端口,默認爲3306
-DENABLE_DOWNLOADS=bool 是否要下載可選的文件。例如,啓用此選項(設置爲1),cmake將下載谷歌所使用的測試套件運行單元測試。
注:從新運行配置,須要刪除CMakeCache.txt文件
#rm CMakeCache.txt
編譯源碼
#make
安裝
#make install
6.修改mysql目錄全部者和組
修改mysql安裝目錄
#cd /usr/local/mysql #chown -R mysql:mysql .
修改mysql數據庫文件目錄
#cd /data/mysqldb #chown -R mysql:mysql .
7.初始化mysql數據庫
#cd /usr/local/mysql #scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
8.複製mysql服務啓動配置文件
#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
注:若是/etc/my.cnf文件存在,則覆蓋。
9.複製mysql服務啓動腳本及加入PATH路徑
#cp support-files/mysql.server /etc/init.d/mysqld #vi /etc/profile 在profile文件最下方添加 PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH #source /etc/profile
10.啓動mysql服務並加入開機自啓動(可選這個步驟,之後能夠本身啓動的)
#service mysqld start #chkconfig --level 35 mysqld on
11.檢查mysql服務是否啓動
#netstat -tulnp | grep 3306 #mysql -u root -p
密碼爲空,若是能登錄上,則安裝成功。
12.修改MySQL用戶root的密碼
#mysqladmin -u root password '123456'
Mysql詳細配置 參考:http://www.javashuo.com/article/p-aaeqhdis-mg.html
13.可能會出現的錯誤 問題:
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).
解決:
修改/etc/my.cnf 中datadir,指向正確的mysql數據庫文件目錄
問題:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解決:
新建一個連接或在mysql中加入-S參數,直接指出mysql.sock位置。
#ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock #/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock
MySQL問題解決:-bash:mysql:command not found
由於mysql命令的路徑在/usr/local/mysql/bin下面,因此你直接使用mysql命令時,
系統在/usr/bin下面查此命令,因此找不到了
解決辦法是:
#ln -s /usr/local/mysql/bin/mysql /usr/bin
3、安裝PHP
1.下載PHP
# wget http://au1.php.net/get/php-5.6.30.tar.gz/from/this/mirror
下載下來的是一個mirror文件,改爲咱們須要的文件名
#mv mirror php-5.6.30.tar.gz #tar zxvf php-5.6.30.tar.gz #cd php-5.6.30
2.編譯安裝
編譯命令
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --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
注:--with-fpm 添加fastcgi支持
配置的過程當中可能會報以下錯誤
錯誤1:
xml2-config not found. Please check your libxml2 installation.
解決辦法:安裝libxml2相關組件
#yum install libxml2 #yum install libxml2-devel -y
錯誤2:
Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
安裝curl相關組件
#yum install curl curl-devel
錯誤3:
configure: error: png.h not found.
安裝libpng相關組件
#yum install libpng #yum install libpng-devel
錯誤4:
freetype-config not found.
安裝freetype相關組件
#yum install freetype-devel
錯誤5:
xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
安裝libxslt相關組件
#yum install libxslt-devel
出現上圖則表明編譯成功了。
接下來安裝編譯
#make && make install
看到這句話,代表安裝完成!
3.配置相關
php.ini配置
首先咱們須要配置的是php.ini這個文件
安裝目錄有2個文件:php.ini-development和php.ini-production
php.ini-production 線上版本使用
php.ini-development 開發版本使用
咱們選擇development進行配置
# cp php.ini-development /usr/local/php/lib/php.ini
php-fpm配置
拷貝php-fpm配置文件
#cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
拷貝啓用文件
#cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
將php-fpm服務添加到chkconfig列表
#chkconfig --add php-fpm
設置開機自啓動
#chkconfig php-fpm on
之後重啓和中止php的方式爲
#service php-fpm start #service php-fpm stop #service php-fpm restart #service php-fpm reload
#/etc/init.d/php-fpm
查看php是否啓動成功
#ps aux | grep php
看到這些,代表你的php已經啓動成功
備註: 可能的錯誤
make: *** [sapi/cli/php] Error 1
解決方法: 一、 make clean以後從新執行make,若是還不OK,執行第2步 二、編譯時使用make ZEND_EXTRA_LIBS='-liconv' ---編譯成功
-bash: php: command not found 命令找不到
解決方法:
#vi /etc/profile 在文件最後添加 export PATH=$PATH:/usr/local/php/bin
而後,再
#echo $PATH usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin
這時候,你能夠在系統的任意目錄直接敲入php -i 均可以執行了。 若已經添加到PATH中了,卻很差使,執行下面命令
#ln -s /usr/local/php/bin/php /usr/bin/php
安裝php mysqli擴展不能用 Warning: mysql_connect(): [2002] No such file or directory
解決方法: 若是/tmp/mysql.sock存在 可是/var/mysql/mysql.sock不存在
cd /var sudo mkdir mysql sudo chmod 755 mysql cd mysql sudo ln -s /tmp/mysql.sock mysql.sock
若是/var/mysql/mysql.sock 存在 可是/tmp/mysql.sock不存在
cd /tmp ln -s /var/mysql/mysql.sock mysql.sock
4.PHP詳細配置 參考http://www.javashuo.com/article/p-mjrgvkkl-d.html
參考: http://blog.csdn.net/wendi_0506/article/details/39478369/