靜態/動態編譯Apache+php+mysql
所需軟體:
apache:1.3.27
php: 4.3.2
mysql:4.0.13
首先來安裝mysql
tar zvxf mysql-4.0.13.tar.gz
cd mysql-4.0.13
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
make
make install
安裝完成。
然後初始化資料庫
/usr/local/mysql/bin/mysql_install_db --user=mysql
設定許可權:
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
複製設定檔;
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
啟動mysql:
/use/local/mysql/bin/mysqld_safe --user=mysql &
修改密碼:初始的root密碼是空的
/usr/local/mysql/bin/mysqladmin -u root -p password 123456
enter password:
把密碼修改為123456,由於初始密碼為空白,所以enter password直接斷行符號就行
測試一下新的密碼:
mysql -u root -p mysql
enter password:123456
如果順利的話就能進入mysql。
首先是apache1.3.29+php4.3.4+mysql4.0.13的靜態編譯
apache第一次編譯,並不要安裝,因為php的編譯需要apache至少已經編譯過一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache
編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \
--with-apache=../apache_1.3.27
make
make install
第二次編譯安裝apache:
cd ../apache_1.3.29./configure --prefix=/usr/local/apache \ --activate-module=src/modules/php4/libphp4.a makemake install cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini 修改/usr/local/apache/conf/httpd.conf 尋找<IfModule mod_mime.c> |
在此範圍添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注意:apache和php的源碼包在同一個目錄,--with-apache=../apache_1.3.27是指向源碼解壓的目錄
ok!靜態編譯完成,大家只要啟動一下伺服器
/usr/local/apache/bin/apachectl start
然後些個php測試頁info.php:內容如下 :
正常的話,應該能看到php的資訊了,那麼靜態編譯成功!
下面講講DSO動態編譯的方法:
首先編譯安裝apache
tar zvxf apache_1.3.29
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite
make
make install
so模組用來提供DSO支援的apachehe核心模組,rewrite是地址修正的模組,如果不需要可以不編譯
enable-shared=max是指除了so以外的所有標準模組都編譯成DSO模組。
然後編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \
--with-apxs=/usr/local/apache/bin/apxs
make
make install
然後修改httpd.conf,方法同靜態編譯的方法
OK,動態編譯就完成了,中間有什麼區別大家應該看的很清楚了吧!