在Centos5.2下編譯安裝LAMP
首先使用Virtualbox安裝一臺CentOS 5.2的虛擬機器,網路連線採用 Host-only Adapter,這樣主客機之間可以互相訪問,但是客機不能夠上廣域網。
0、系統初步配置
原始檔位置 /root/software
編譯安裝位置 /usr/local/{software_name}
資料存放 /data1/
Apache執行賬戶 www:www
mysql執行賬戶 mysql:mysql
關閉 Selinux
Selinux 經常會對系統的執行產生一些奇怪的影響,如果不是特別熟悉的話,建議關掉 Selinux。
Selinux 的配置檔案位於 /etc/selinux/config,我們需要修改的部分在:
SELINUX=enforcing
修改為 SELINUX=disabled,然後重啟伺服器,SELINUX 的配置救生效了。
配置 iptables
安裝必要的軟體
如果能夠連上網路,可以通過 yum 來安裝這些必要的工具;如果不能連上網路,則需要使用本地的安裝源或者安裝檔案。
下面列出一些必須的工具:
gcc
wget
make
ntp
patch
autoconf
automake
bzip2-devel
通過本地的源來進行安裝,首先在 Virtualbox 的 Devices -> Mount CD/DVD-Rom -> CD/DVD-Rom image,載入安裝的映象檔案。
計劃安裝的軟體及其版本:
apache 1.3.41
cronolog 1.6.2
gd 2.0.35
libiconv 1.13.1
libmcrypt 2.5.8
mcrypt 2.6.7
openssl 0.9.8k
openssh 5.2p1
pecre 7.9
nginx 0.7.62
mysql 5.0.51
php 5.2.9/4.4.9
memcached 1.4.1
memcache 2.2.5
xcache 1.2.2
zend optimizer 3.3.9
imap
bind 9.4.2
1、安裝其他軟體
安裝 OpenSSL:
./config –prefix=/usr/local/openssl/
make
make test
make install
安裝GD2
ar jxvf gd-2.0.35.tar.bz2
cd gd-2.0.35
./configure –prefix=/usr/local/gd2
make &&make install
cd ..
安裝libiconv
tar zxvf libiconv-1.12.tar.gz
cd libiconv-1.12
./configure –prefix=/usr &&make &&make install
cd ..
安裝libmcrypt
tar jxvf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8
./configure –prefix=/usr/local/libmcrypt &&make &&make install
cd ..
安裝 cronolog
./configure –prefix=/usr/local/cronolog
make && make install
2、安裝mysql
本文采用的是二進位制安裝的方式進行的,基本的順序和 mysql 官方的順序差不多,只不過有些地方做一些說明。
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> tar -xvzf /path/to/mysql-VERSION-OS.tar.gz
shell> mkdir /usr/local/mysql
shell> cp -rf /path/to/mysql-VERSION-OS /usr/local/mysql
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db –user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe –user=mysql &
前面幾步一般不會有問題,只是最後一步執行 bin/mysqld_safe –user=mysql & 的時候,系統出錯了:
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
090930 12:19:32 mysqld ended
然後就結束了,這個問題的原因,我們可以在日誌檔案 /var/log/mysqld.log 中看到
090930 12:19:31 mysqld started
090930 12:19:31 [Warning] option `thread_stack`: unsigned value 126976 adjusted to 131072
090930 12:19:32 InnoDB: Started; log sequence number 0 43655
090930 12:19:32 [ERROR] /usr/local/mysql/bin/mysqld: Can`t create/write to file `/var/run/mysqld/mysqld.pid` (Errcode: 2)
090930 12:19:32 [ERROR] Can`t start server: can`t create PID file: No such file or directory
090930 12:19:32 mysqld ended
也就是許可權不夠,解決的辦法有兩個,一個是建立一個 mysql 有許可權讀寫的 /var/run/mysqld/ 資料夾;另一個方法,我們可以使用 /usr/local/mysql/support-files/mysql.server 來進行服務的啟動。
這樣 mysql 安裝完成以後,檔案的存放結構都是按照預設的設定來的,比如一些常見的:
配置檔案 /etc/my.cnf
basedir /usr/local/mysql
最後需要配置一下mysql隨系統啟動服務,拷貝 /usr/local/mysql/support-files/mysql.server -> /etc/rc.d/init.d/mysql 中,然後新增 chkconfig –add mysql
這樣就可以通過 service mysql start 來啟動 mysql 服務了
3、安裝Apache
這篇裡 apache 選擇經典的 1.3.41 版本。
apache 的安裝方法不止一種,無論哪一種,首先我們必須確認當前系統中沒有 httpd 服務正在執行:ps -aux | grep httpd,如果我們發現結果中有的話,應該將他殺掉。
然後到 apache 的安裝目錄下,這裡是 /root/software/source_lamp/apache_1.3.41,整個目錄內的結構和檔案介紹如下:
cgi-bin/ ――用於測試CGI的指令碼。隨後,安裝過程將把這些檔案複製到伺服器的/cgi-bin目錄中。如果啟動了Apache的CGI功能,這些指令碼可以用於測試那些功能。
conf/ ――配置檔案。這些釋出時的配置不應該進行編輯。安裝過程把這些檔案複製到伺服器的配置目錄中,對這些複製檔案將進行擴充套件編輯。
htdocs/ ――第一個Web站點。安裝過程把這些檔案複製到伺服器的文件根目錄中。瀏覽器第一次測試伺服器時將顯示這些網頁。
icons/ ――目錄索引圖示。這些影像檔案將成為由Web伺服器用來提供特別路徑索引功能的圖示。
logs/ ――日誌工具。這個目錄是空的,安裝過程將為安裝好的伺服器建立一個日誌目錄。
src/ ――原始碼。這個目錄(和它的子目錄)包含了C語言原始碼檔案,你編譯它們以建立出Apache Web伺服器。
首先執行 configure,這裡將 bin/data/log,三個目錄進行了自定義:
./configure –prefix=/usr/local/lampsrv/apache/ –datadir=/data1/www/data/htdocs/ –logfiledir=/data1/www/applogs/ –enable-shared=max –enable-module=most
make
make install
4、安裝PHP
解壓下載的安裝包,然後執行配置。
./configure –prefix=/usr/local/lampsrv/php –with-apxs=/usr/local/lampsrv/apache/bin/apxs –with-config-file-path=/usr/local/lampsrv/etc/php/ –enable-track-vars –with-xml –with-mysql
make && make install
安裝完成後,在 apache 的配置檔案中新增對於 php 字尾的解析。
AddType application/x-httpd-php .php .php3 .inc
AddType application/x-httpd-php-source .phps
然後重啟 apache 服務:/usr/local/lampsrv/apache/bin/apachectl restart
啟動的時候,有可能會遇到這樣的錯誤:Cannot load /usr/local/apache2/modules/libphp4.so into server: /usr/local/apache2/modules/libphp4.so : cannot restore segment prot after reloc: Permission Denied
這種情況一般是由於 selinux 的安全設定引起的,可以考慮關閉掉 selinux,在 /etc/selinux/config 中進行設定。
5、安裝總結
至此,我們已經配置了基本的 Linux + Apache + Mysql + PHP 的執行環境,但是仍有很多的配置檔案散落在各處,比如 mysql 的配置檔案和資料檔案。如何將這些配置檔案和資料檔案歸攏在一個統一的位置,比如 /data1/www/etc ,還是一個需要不斷總結積累的問題,另外還有一個就是如何形成一個快速安裝配置的模式,是通過編寫指令碼還是通過搭建 yum 源來實現多臺機器的快速配置是一個很需要經驗的問題,在這兩個方面,今後要不斷的總結。
參考資料:
1、CentOS 5.2 編譯安裝
2、Apache httpd project
3、Cronolog
4、GD Library
5、GNU libiconv
6、OPEN SSL
7、OPEN SSH
8、PCRE
9、nginx
10、mysql
11、php
12、Memcached
13、XCache
14、IMAP
15、Mysql Install
16、Linux自啟動詳細設定
17、Apache 1.3.x 安裝配置筆記
18、Apache 安裝指南
相關文章
- 編譯安裝LAMP環境編譯LAMP
- LAMP原始碼編譯安裝LAMP原始碼編譯
- [LAMP]Php-5.3.29編譯安裝LAMPPHP編譯
- [LAMP]Mysql-5.6.28編譯安裝LAMPMySql編譯
- LAMP兩種編譯安裝模式LAMP編譯模式
- LAMP 編譯安裝基本步驟LAMP編譯
- 詳解LAMP原始碼編譯安裝LAMP原始碼編譯
- LAMP原始碼編譯安裝配置+wordpressLAMP原始碼編譯
- [LAMP]Apache-2.2.31編譯安裝LAMPApache編譯
- Centos6.8下編譯安裝LAMP的操作記錄梳理CentOS編譯LAMP
- CentOS5.5下快速編譯安裝最新的LAMP環境CentOS編譯LAMP
- LAMP純原始碼編譯安裝日誌LAMP原始碼編譯
- 在solrais下編譯安裝MySQL(轉)SolrAI編譯MySql
- CentOS5.2下Memcache的安裝與配置CentOS
- LAMP全功能編譯安裝forCentOS6.3筆記(更新)LAMP編譯CentOS筆記
- CentOS 下編譯安裝 NginxCentOS編譯Nginx
- CentOS 下編譯安裝 apacheCentOS編譯Apache
- windows下編譯安裝thriftWindows編譯
- ubuntu下 編譯安裝swftoolsUbuntu編譯
- Centos 下編譯安裝RedisCentOS編譯Redis
- lamp編譯詳解LAMP編譯
- 在aix5.2下面安裝gcc編譯器AIGC編譯
- 原始碼編譯安裝 httpd2.4+MariaDB5.5+php5.4(LAMP)原始碼編譯httpdPHPLAMP
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- Linux下編譯安裝BOOSTLinux編譯
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- lamp安裝LAMP
- Apache伺服器的編譯安裝和LAMP環境的構建Apache伺服器編譯LAMP
- ubuntu手動編譯lampUbuntu編譯LAMP
- CentOS 下編譯安裝 PHP7.2CentOS編譯PHP
- Linux Centos下編譯安裝RedisLinuxCentOS編譯Redis
- centos7下編譯安裝lnmpCentOS編譯LNMP
- Centos下Sphinx的下載與編譯安裝CentOS編譯
- 在Ubuntu上安裝LAMP伺服器UbuntuLAMP伺服器
- linux下LAMP原始碼安裝部署LinuxLAMP原始碼
- PHP7.0.0在OS X編譯安裝PHP編譯
- yum安裝lampLAMP
- Linux 環境下編譯安裝 RedisLinux編譯Redis