CentOS6.2安裝LAMP+DRUPAL網站
(原創,權利保留,如轉載請註明出處)
1. apache2+openssl+mysql+ca+php5 完整安裝(成功版)
1.1設置好機器名和IP等信息
1.2將以下軟件源碼copy到/usr/local/src:
1.3安裝配置mysql.
1.4安裝openssl:
1.5安裝apr、apr-util、pcre:
1.6安裝apache2:
1.7安裝php相關軟件
1.8mysql擴展,按如下處理:
1.9openssl擴展支持處理:
2安裝drupal.
2.1安裝pdo_mysql.
2.2安裝drupal前準備
2.3core安裝
2.4clean URL
2.5文件系統設置
2.6安裝drupal wysiwyg模塊(所見即所得)
2.7imce.
2.8安裝libraries api/transliteration.
2.9用戶相關簡單模塊..
2.10數學公式.
2.11評價模塊
2.12定時備份mysql和drupal主頁內容到u盤
2.13擴展支持性模塊
2.14Ddblock 安裝動態展示圖片模塊
2.15smart_paging.
2.16用戶的鎖定機制設置flood_control.
2.17內容類型
2.18驗證碼模塊
2.19用戶積分控制模塊
2.20產品與購買模塊
2.21Ubercart設置
2.22PHP mail.
2.23分享到社交網站模塊.
2.24Files下載積分控制
1.1userpoints.
1.2重點.
1.3支付寶接口模塊..
1.4QQ登錄模塊.
2.25網站花生殼解析服務.
2.26在線考試用的模塊
2.27hook and module
3網站內容
3.1功能
3.2內容
3.3安裝記錄
1apache2+openssl+mysql+ca+php5 完整安裝(成功版)
安裝好最小版本的CentOS6.2
(root,我58)
(生產機器禁止root遠程登錄,創建普通登錄賬號fc,登錄後su root切換。
#useradd fc
#passwd fc(Fcisjade!)
#vi /etc/ssh/sshd_config
PermitRootLogin yes –> PermitRootLogin no
#service sshd restart
)
vi /etc/hosts
vi /etc/sysconfig/network
(vi /etc/hosts
127.0.0.1 m8 m8.localdomain localhost localhost.localdomain
::1 m8 m8.localdomain localhost localhost.localdomain)
vi /etc/resolv.conf
service network restart(重啓生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
增加:
IPADDR=xxx.xxx.xxx.xxx
NETMASK=255.255.255.0
NETWORK=xxx.xxx.xxx.0
vi /etc/resolv.conf
(search localdomain
nameserver 202.96.134.133)
u基礎準備
yum install -y ntpdate
//安裝ntp同步
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
//設置爲東8區
ntpdate us.pool.ntp.org
//執行一次同步
crontab -e
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
//每10分鐘同步一次
yum install –y gnome-libs-1.4.2-5.el5.kb.i386.rpm
yum install –y libaio
yum install –y make gcc
yum install –y gcc-c++
yum install –y make perl
uU盤掛接
U盤在windows下格式化成fat32格式。
modprobe usb-storage
//啓usb支持
fdisk –l
//查看設備情況
mount -t vfat /dev/sdb1 /mnt/usb
/mnt/usb就是此u盤在centos中的目錄了。
如果不用了,執行:
umount /mnt/usb
//需要退出/mnt/usb目錄。
1.2將以下軟件源碼copy到/usr/local/src:
apr-1.4.6.tar.gz
apr-util-1.4.1.tar.gz
curl-7.27.0.tar.gz
freetype-2.3.5.tar.gz
gd-2.0.33.tar.gz
httpd-2.4.3.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.5.12.tar.gz
libxml2-2.8.0.tar.gz
libxslt-1.1.27.tar.gz
mysql-5.5.27-linux2.6-i686.tar.gz
openssl-1.0.1c.tar.gz
pcre-8.31.tar.gz
php-5.4.0.tar.gz
zlib-1.2.7.tar.gz
依次解壓:
tar –zxvf ….tar.gz
(… 用具體文件名替代)
或全部解壓:
for ARK in ./*.tar.gz; do tar -xvf $ARK; done
將屬主全部改爲root:
chown root:root * -R
u檢查、修正系統時間:
date [0926073012]
(2012-09-26 07:30)
mv mysql-5.5.27-linux2.6-i686 /usr/local/mysql
cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
cp support-files/my-medium.cnf /etc/my.cnf
./scripts/mysql_install_db
增加用戶、組:
groupadd mysql
useradd -g mysql mysql
passwd mysql
(輸入符合策略的密碼:我是幸運的2013!)
授權:
chown mysql:mysql /usr/local/mysql -R
測試運行:
./bin/mysqld_safe &
service mysqld start
檢查:
netstat –ant
可以看到3306端口被偵聽。
修改管理賬號密碼:
./bin/mysqladmin -u root password XXXXXXXX
(我是幸運的2013!)
(如果已經有原始密碼,則輸入./bin/mysqladmin -u root –p password XXXXXXXX,輸入原始密碼後更改新密碼)
登錄:
./bin/mysql -u root -p
刪除空密碼賬號:
mysql> use mysql;
mysql> delete from user where User='';
cd /usr/local/src/openssl-1.0.1c
./config --prefix=/usr/local/openssl
make && make install
(如果GCC報錯,要裝好GCC
安裝程序在光盤server目錄。安裝順序
rpm -ivh cpp-3.4.6-3.i386.rpm
rpm -ivh glibc-kernheaders-2.4-9.1.98.EL.i386.rpm
rpm -ivh glibc-headers-2.3.4-2.25.i386.rpm
rpm -ivh glibc-devel-2.3.4-2.25.i386.rpm
rpm -ivh gcc-3.4.6-3.i386.rpm)
cd /usr/local/src/apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
cd /usr/local/src/apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd /usr/local/src/pcre-8.31
./configure --prefix=/usr/local/pcre
make && make install
make[1]: *** [pcrecpp.lo] Error 1 說明缺少安裝gcc-c++庫,安裝即可安裝命令:yum -y install gcc-c++ 重新configure
cd /usr/local/src/httpd-2.4.3
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-ssl=/usr/local/openssl --enable-ssl --enable-so --enable-mods-shared=most
make && make install
在/usr/local/apache2/bin目錄下創建啓動腳本:
cd /usr/local/apache2/bin
vim apache2.sysvinit,內容如下:
(其中# chkconfig: 2345 80 30 # description: apache2 - WWW local 兩行是必須的,否則無法設置chkconfig)
#!/bin/sh
#
# This is a sample /etc/init.d file for apache
#
# chkconfig: 2345 80 30
# description: apache2 - WWW local
#
#
#
prefix=/usr/local/apache2
exec_prefix=/usr/local/apache2
bindir=${exec_prefix}/bin
sbindir=${exec_prefix}/sbin
case "$1" in
start)
echo -e "Starting apache2 WWW local:"
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start
echo -e ""
;;
stop)
echo -e "Stopping apache2 WWW local:"
/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k stop
echo -e ""
;;
restart)
$0 stop
sleep 3s
$0 start
;;
esac
exit 0
將此腳本copy到系統目錄:
cp apache2.sysvinit /etc/rc.d/init.d/httpd2
更改權限:
chmod 755 /etc/rc.d/init.d/httpd2
加到自啓動列表:
chkconfig --add httpd2
如已有其它apache版本,禁止自啓動:
檢查:chkconfig --list|grep http
禁止舊版本運行:chkconfig --level 0123456 httpd off
測試:
/etc/rc.d/init.d/httpd2 start
驗證端口:
netstat -ant|grep LISTEN
訪問驗證:瀏覽器訪問http://192.168.216.11/,會顯示It works!
nCentos可能防火牆端口沒有開:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT
開80/443端口
service iptables save
(centos5.2之前:/etc/rc.d/init.d/iptables save)
保存防火牆配置。
如無線路由器設置的虛擬服務器發布不生效,檢查下服務器是否將網關設置爲路由器的LAN IP:
route add default gw 192.168.0.1
更改無線路由器登錄: admin(我58)
l啓用ssl模塊
cd /usr/local/apache2/conf/
cp httpd.conf httpd.conf.bak
(備份conf文件)
vi /usr/local/apache2/conf/httpd.conf(先cp備份),將下面3個前面的#號去掉:
#Include conf/extra/httpd-ssl.conf
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
生成證書:
cd /usr/local/openssl/ssl/certs/
/usr/local/openssl/bin/openssl req -new -x509 -days 3650 -nodes -out cert.pem -keyout cert.pem爲www.mathsea.com頒發,屬於自頒發證書。
cp cert.pem /usr/local/apache2/conf
cd /usr/local/apache2/conf/extra/
cp httpd-ssl.confhttpd-ssl.conf.bak
vim /usr/local/apache2/conf/extra/httpd-ssl.conf
增加:
SSLCertificateFile "/usr/local/apache2/conf/cert.pem"
而:
#SSLCertificateFile "/usr/local/apache2/conf/server.crt"
#SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
注釋掉。
對mod_ssl.so的授權限制處理:
setenforce 0
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/mod_ssl.so
(在centos中去掉-c)
setenforce 1
有可能系統提示“setenforce: SELinux is disabled”,則不需要執行。
驗證:
service httpd2 restart
netstat -ant |grep LISTEN
應可看到443端口偵聽。IE用https訪問也可(會提示證書問題)。
l安裝jpeg6:
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man1
mkdir /usr/local/jpeg6/man/man1
cd /usr/local/src/jpeg-6b/
./configure --prefix=/usr/local/jpeg6 --enable-shares --enable-static
make && make install
l安裝zlib:
cd /usr/local/src/zlib-1.2.7
./configure --prefix=/usr/local/zlib
vim Makefile,在CFLAGS 後面添加 -fPIC 參數(是一個bug),
make && make install
l安裝libpng:
cd /usr/local/src/libpng-1.5.12
cp scripts/makefile.std makefile
vim makefile,將裏面zlib的路徑替代正確。
make && make install
l安裝freetype:
cd /usr/local/src/freetype-2.3.5
mkdir /usr/local/freetype
./configure --prefix=/usr/local/freetype
make && make install
l安裝gd2:
cd /usr/local/src/gd-2.0.33
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/lib --with-zlib=/usr/local/zlib/lib --with-freetype=/usr/local/freetype
原因是zlib安裝路徑爲/usr/local/zlib,因爲不但需要zlib的lib目錄,還需要include目錄,如下可以解決:
CFLAGS=" -I/usr/local/zlib/include" LDFLAGS="-L/usr/local/zlib/lib" ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/lib --with-freetype=/usr/local/freetype
make && make install
訪問phpinfo()確認是否GD支持JPEG Support
vim /usr/local/gd2/include/gd_io.h,在void (*gd_free)結構裏面增加一句(是一個bug):
void (*data);
按以上方法,結果訪問phpinfo()結果沒有JPEGsupport,解決方法:
cd /usr/local/src/gd-2.0.33
make clean
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/lib --with-zlib=/usr/local/zlib/lib --with-freetype=/usr/local/freetype
make && make install
vim /usr/local/gd2/include/gd_io.h,在void (*gd_free)結構裏面增加一句(是一個bug):
void (*data);
cd /usr/local/src/php-5.4.0
make clean
./configure --prefix=/usr/local/php --with-mysqli=/usr/local/mysql/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2 --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg6 --with-png-dir=/usr/local/bin --with-zlib-dir=/usr/local/zlib --with-freetype-dir=/usr/local/freetype --with-curl=/usr/local/curl --with-xsl=/usr/local/libxslt --enable-soap --enable-sockets --enable-mbstring --enable-ftp
make && make install
/etc/rc.d/init.d/httpd2 restart
恢復。原因:GD沒有安裝好對JPEG的支持,PHP也需要重新編譯安裝。
l安裝libxml2:
yum install libxml2-devel
cd /usr/local/src/libxml2-2.8.0
./configure --prefix=/usr/local/libxml2 --with-zlib=/usr/local/zlib
vim Makefile,找到起始爲CFLAGS的行(vim中/^CFLAGS),在其末尾增加空格和-fPIC(是一個bug)
make && make install
l安裝libxslt:
cd /usr/local/src/libxslt-1.1.27
./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
make && make install
l安裝curl
cd /usr/local/src/curl-7.27.0
./configure --prefix=/usr/local/curl
make && make install
u安裝php5:
yum install libjpeg-devel
cd /usr/local/src/php-5.4.0
./configure --prefix=/usr/local/php --with-mysqli=/usr/local/mysql/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2 --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg6 --with-png-dir=/usr/local/bin --with-zlib-dir=/usr/local/zlib --with-freetype-dir=/usr/local/freetype --with-curl=/usr/local/curl --with-xsl=/usr/local/libxslt --enable-soap --enable-sockets --enable-mbstring --enable-ftp
(特別說明:--with-mysqli=/your/path/to/mysql_config, /your/path/to/是mysql_config這個可執行文件的路徑)
make && make install
#如果configure時OK但make是報錯,提示沒有data數據類型,修改/usr/local/gd2/gd_io.h,增加如下紅色部分:
並且重新在/usr/local/src/php-5.4.6執行make clean,再重新執行configure,make,make install
#另如出現
configure: error: jpeglib.h not found.
安裝libjpeg-devel(從安裝光盤或者網上下載)
copy ini文件:
cp php.ini-production /usr/local/php/lib/php.ini
vi /usr/local/apache2/conf/httpd.conf,找到 AddType application/x-gzip .gz .tgz,在其下增加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
/usr/local/apache2/bin/apachectl start測試,如果報錯:
httpd: Syntax error on line 146 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
執行下面3行命令解決:
setenforce 0
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
setenforce 1
生成測試php腳本:
cd /usr/local/apache2/htdocs/
vi test.php
test.php的內容是:
<?php
phpinfo();
?>
重啓apache2:
/etc/rc.d/init.d/httpd2 restart
在客戶端IE訪問驗證:
https://192.168.216.11/test.php
成功!
yum install autoconf
cd /usr/local/src/php-5.4.0/ext/mysql
/usr/local/php/bin/phpize
(不先執行yum install autoconf會有如下報錯)
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql
make && make install
vi /usr/local/php/lib/php.ini,搜索/or under UNIX:,在此處增加:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/mysql.so
/etc/rc.d/init.d/httpd2 restart
cd /usr/local/src/php-5.4.0/ext/openssl
/usr/local/php/bin/phpize
如出現以下錯誤:Cannot find config.m4. *****************************************
解決方法:
查看源碼包OPENSSL文件夾下是否有config0.m4,如果有可執行,
#mv config0.m4 config.m4,
再次執行/usr/local/php/bin/phpize,然後
http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
tar -zxvf re2c-0.13.5.tar.gz
cd re2c-0.13.5
./configure && make && make install
再安裝openssl-devel及其相關包:
yum install openssl-devel,否則會報如下黑框中“…warning:You will need re2c…”錯誤。
./configure --with-php-config=/usr/local/php/bin/php-config --with-openssl --with-libdir=/usr/lib/(注意後面兩個參數,曾經錯過。如果對於./configure帶什麼參數不清楚,可以通過./configure –help來查找)
爲避免出現libssl not found!錯誤,要將openssl-devel***及其依賴的安裝包裝上。
make && make install
vi /usr/local/php/lib/php.ini,增加:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/openssl.so
/etc/rc.d/init.d/httpd2 restart