1. 裝完系統后開啟 sshd, 關閉防火牆 (不然外鏈接是訪問不了 apache) 關閉安全系統 SELinux( 不然報403 訪問頁面錯誤 )
重啟后永久性生效
chkconfig sshd on (
開啟
sshd)
chkconfig iptables off (
關閉防火牆
)
修改
/etc/selinux/config
文件中設置
SELINUX=disabled (
關閉
SELinux)
即時生效
,
重啟后失效
#service sshd start (
開啟
sshd)
#service iptables stop(
關閉防火牆
)
#setenforce 0 (
關閉
SELinux)
2.
默認
centos6
裝了
mysql+apache
可用
rpm -q mysql
或
httpd
查看是否已經裝
默認已安裝
chkconfig
設成開機啟動
( chkconfig --list
是列出當前
,
如果
list
里面沒有
mysqld
和
httpd
則用
chkconfig --add mysqld
和
httpd)
接着
chkconfig httpd on
和
chkconfig mysqld on
這只是要重啟后才永久生效
如果即時生效
用
service httpd start service mysqld start
3.
修改
apache
的配置文件比如更改網站文檔目錄或不同域名指向不同的文件夾或開端口等等
默認配置文件在
/etc/httpd/conf
文件夾下的
httpd.conf
1).
修改網站文檔目錄在
httpd.conf
下修改
DocumentRoot "/var/www" <Directory "/var/www">
這二要目錄一樣
2).
不同域名指向不同目錄
在
httpd.conf
查找
#Inculde /etc/httpd/conf/httpd-vhosts.conf
去掉前面的
#
號如果不存在剛加上這一句且創建
httpd-vhosts.conf
文件
(
或者直接在
/etc/httpd/conf.d
目錄下建一個
httpd-vhosts.conf
因為
http.conf 已經#Inculde /etc/httpd/conf.d/*.conf
了
)
#
確保
Apache
在監聽
80
端口
即
httpd.conf
文件里要有下面一句話 其實也可以放在httpd-vhosts.conf里
Listen 80
修改
httpd-vhost.conf
文件格式如下
#
為虛擬主機在所有
IP
地址上監聽
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin edu1211@163.com DocumentRoot /var/www/ ServerName www.example.com # 你可以在這里添加其他指令 </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/a ServerName www.a.com # 你可以在這里添加其他指令 Errorlog "logs/a.log" CustomLog "logs/b.log" common </VirtualHost>
上面可以在外部電腦更改
/etc/hosts
文件
如在
windows
平台更改
C:\Windows\System32\drivers\etc\hosts
文件
(
假設
192.168.0.110
是我們部署的服務器
)
127.0.0.1 localhost 192.168.0.110 www.example.com 192.168.0.110 www.a.com 192.168.0.110 www.b.com
則在外部電腦輸入
www.example.com
則跳到
/var/www/
目錄
則在外部電腦輸入
www.a.com
則挑到
/var/www/a
目錄
則在外部電腦輸入
www.b.com
則挑到
/var/www/
目錄
為什么輸入
www.b.com
會挑到
/var/www/
目錄下
因為服務器在
httpd-vhosts.conf
找不到虛擬主機名剛默認挑到
80
端口的第一個虛擬目錄下
3).
為網站開不同端口
首先在
httpd.conf
或httpd-vhosts.conf(建議寫在這里面)加上要監聽的端口
Listen 8080 //
添加的要開的斷口
然后
httpd-vhost.conf
添加格式跟
80
端口一樣
4.
安裝
php
初始系統是沒有安裝的
yum install php
即可
php
配置文件是
php.ini
可以用
find / -name php.ini
一般在
/etc/php.ini
這個位置
現在要
apache
支持
(
綁定
)php
腳本語言
即修改
apache
的配置文件
httpd.conf
在
#AddType application/x-tar .tgz
下加上以下二行
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.html index.html.var index.php//即加上訪問目錄時index.php
其實上面可以改
/etc/httpd/conf.d
目錄下的
php.conf
就可以了
(
建議這樣
因為
/etc/httpd/conf/httpd.conf
已經有
Include conf.d/*.conf)
在php.conf 里面我們都可以看到 Apache 綁定PHP 腳本語言的代碼所以上面的 httpd-vhosts.conf 文件可以直接寫在 /etc/httpd/conf.d目錄下就可以了
同時修改
php
的配置文件
php.ini
打開
mysql
擴展
即去掉
;extension=mysql.so
的分號
然后重啟
apache
即可
service httpd restart
5.
安裝
phpMyAdmin
1)
到官網下載最新的
phpMyAdmin
包
2)
解壓包
tar zxvf phpMyAdmin-2.113-all-languages.tar.gz
3) mv phpMyAdmin-2.113-all-languages /var/www/phpMyAdmin
4) phpMyAdmin
的配置文件在
/phpMyAdmin/libraies/config.default.php
文件
(
如果是以根目錄下
config.ini.php
配安裝例外
)
安裝完成
即可通過網頁登錄
但是默認
mysql
是空密碼
而
phpMyAdmin
禁止空密碼登錄
則可通過命令行的方式更改
mysql
密碼或改
phpMyAdmin
的配置文件讓允許空密碼登錄
打開配置文件找到
$cfg['Servers'][$i]['nopassword'] =false
$cfg['Servers'][$i]['AllowNoPassword'] =false
把這二行的
false
都改成
true
即可
$cfg['Servers'][$i]['auth_type'] ='cookie';
是默認的
,
如果更成
$cfg['Servers'][$i]['auth_type']='config';
用
config
模式時需要
user,password
參數,這時登錄
PhpMyAdmin
不需要輸入用戶名密碼,安全性較低,適合多用戶測試開發即
$cfg['Servers'][$i]['user']='root';
$cfg['Servers'][$i]['password']='';
就生效了
即以種默認身份登錄
6.
安裝
PHP
擴展模塊
linux
下
PHP
擴展安裝模塊比如打開
phpMyAdmin
的話會提示
沒有找到
PHP
擴展
mbstring
,而您現在好像在使用多字節字符集。沒有
mbstring
擴展的
phpMyAdmin
不能正確分割字符串,可能產生意想不到的結果
.
則在
php.ini
加上
extension=mbstring.so
重啟
apache(httpd)
還是不行
那么運行
find / -name mysql.so
找到存放模塊的目錄一般是
/usr/lib/php/modules/mysql.so
這個位置則找找
/usr/lib/php/modules/
目錄下有沒有
mbstring.so
很顯示沒有
那么得安裝
yum install php-mbstring
然后再重啟
apache(httpd)
剛提示錯誤沒有了
7.
安裝
Nginx+PHP(要源碼安裝 )
1)
安裝
Nginx
centos
默認是安裝了
apache
那么用
yum remove httpd
然后再安裝
ngnix
因為
yum
源是不包含
ngnix
官網有提供
yum
安裝說明
:
CentOS:
To add nginx yum repository, create a file named /etc/yum.repos.d/nginx.repo and paste one of the configurations below:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
當然也有源碼安裝但是需要你安裝依賴包
(
有點麻煩
)
Nginx
的配置文件在
/etc/nginx/nginx.conf
但是文件的最后是包含其它文件的 Include /etc/nginx/conf.d/*.conf;
然后
#service nginx start #chkconfig nginx on
2)
安裝
PHP
但是安裝
PHP
的時候如果直接
yum
安裝
php
是不行的
因為默認情況下
Nginx
和
PHP
他倆之間是一點感覺沒有的,在之前,很多朋友都搭建過
Apache+PHP
,
Apache+PHP
編譯后生成的是模塊文件,而
Nginx+PHP
需要
PHP
生成可執行文件才可以,所以要利用
fastcgi
技術來實現
N ginx
與
PHP
的整合,這個只要我們安裝是啟用
FastCGI
即可。此次我們安裝
PHP
不僅使用了
FastCGI
,而且還使用了
PHP-FPM
這么一個東東,
PHP-FPM
說白了是一個管理
FastCGI
的一個管理器,它作為
PHP
的插件純在,在安裝
PHP
要想使用
PHP-FPM
時就需要把
PHP-FPM
以補丁的形式安裝到
PHP
中,而且
PHP
要與
PHP-FPM
版本一致,這是必須的,切記!
所以
PHP
得源碼安裝的時候把
PHP-FRM
選項帶上即解壓
PHP
源碼包后
先安裝
gcc
套件這是個編譯器
yum install gcc yum install gcc-c++
(libmcrypt
要用到
)
./configure --prefix=/usr/local/php --with-gd --enable-mbstring --with-mysql --with-mysqli --with-jpeg-dir --with-zlib --with-openssl --with-mcrypt --enable-fastcgi --enable-fpm
此過程會出現以下錯誤
a) error: xml2-config not found. Please check your libxml2 installation.
因為
php5
是需要
libxml2
支持
rpm -qa|grep libxml2
只需要安裝
libxml2-dev ,
yum install libxml2-devel
b)
同樣出會出現
openssl
錯誤那么
yum install openssl-devel
c) configure: error: jpeglib.h not found.
解決方法是:
yum install libjpeg-devel
d) configure: error: png.h not found
解決方法是:
yum install libpng-devel
e) configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解決方法
yum
碼安裝不了
所以得百度搜
libmcrypt
源碼
libmcrypt./configure (
這里不能
--prefix
指定安裝路徑不然下面安裝還是會出錯
)
可能會報
check ....no
忽視這些
checking for g77... no
什么
fastcgi
警告
但是沒出現錯誤比如
configure: error: No F77 compiler found
就可以了所以
接着
#make #make install
跳到
php
目錄下繼續
./configure --prefix=/usr/local/php --with-gd --enable-mbstring --with-mysql --with-mysqli --with-jpeg-dir --with-zlib --with-openssl --with-mcrypt --enable-fastcgi --enable-fpm
安裝
php
過程會遇到的報錯可以參考
http://www.cnblogs.com/1110111abc/articles/2528102.html
接着
#make #make install #cp php.ini-production /usr/local/php/etc/php.ini #mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf //不然下面啟動php-fpm會報錯找不到php-fpm.conf文件
下面我們就要啟動
PHP-FPM
#/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini //如果不加上-c參數指定他的php.ini參數(必須不然以后沒法修改他的php.ini文件) (lsof -i:9000 可以查看9000端口占用詳細情況) 網上說后面加上start是不行的(可能以前版本要吧)
vim /etc/rc.local
在這個文件的最后加入如下語句
:
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
這里你所要啟動的服務一定要寫成是絕對路徑的形式
!!
不然的話
,
這個服務是啟動不起來的
!!
最后一步關聯
Nginx
與
PHP
#vim /etc/nginx/conf.d/default.conf #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; # include fastcgi_params; #}
改成
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
#vi /usr/local/php/etc/php-fpm.conf
如果要把
9000
端口改成其它的端口那么二個文件的端口要改成一至
最后重啟
Nginx
#service nginx restart
建一個測試頁面加上
vim /usr/share/nginx/html/a.php
<?php
phpinfo();
?>
執行
phpinfo();date
時區不正確
解決方法
vim /usr/local/php/etc/php.ini
設置為
date.timezone = Asia/Shanghai
如果要在Nginx 開端口什么的跟 Apache 上一樣
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$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; #} }
復制一下
server
然后修改一下就可以了
