linuxapachephp模塊
1. linux下編譯php,並使之關聯Apache,有沒有高手,求助啊。
如果是rpm報的話,默認是不用結合的,只要把php文件放到apache的文件路徑下就好
如果是源碼包的話,我建議重新編譯php軟體,進行如下配置:
[/root/Desktop/mysql]#tar jxf php-5.2.9.tar.bz2 -C /usr/local/src/
[/usr/local/src/php-5.2.9]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php
--with-apxs2=/usr/local/apache2/bin/apxs:用apache的apxs工具把php編譯成apache的一個模塊
--with-mysql=/usr/local/mysql:與mysql結合(如果沒有安裝mysql話,就不要此項了)
[/usr/local/src/php-5.2.9]#make
[/usr/local/src/php-5.2.9]#make install
[/usr/local/src/php-5.2.9]#cp php.ini-dist /usr/local/php/
[/usr/local/php]#mv php.ini-dist php.ini
[/usr/local/php]#ls
bin etc include lib man php.ini
[/usr/local/apache2/moles]#ls libphp5.so
libphp5.so
[/usr/local/apache2]#cd conf/httpd.conf
99 LoadMole php5_mole moles/libphp5.so 模塊
355 AddType application/x-httpd-php .php 識別php網頁
212 DirectoryIndex index.html index.php 默認網頁
2. 請問Apache + Linux +PHP的整合
1.下載新的MySql_server.rpm
rpm -ivh Mysql_server_XXXX.rpm安裝server平台
rpm -ivh Mysql_client_xxxx.rpm安裝client包
如果你是更新安裝的話,可能提示 confict,so replace rpm -ivh 為 rpm
-Uvh
2.安裝 apache
tar -zxvf httpd-2.2.6.tar.gz
cd httpd-2.2.6
。/configure——prefix=/usr/local/apache——enable-mole=so
make
make install
3.安裝 php-5.2.4
tar -zxvf php-5.2.4.tar.gz
cd php-5.2.4
。/configure——prefix=/usr/local/php ——with-apxs2=/usr/local/apache2/bin/apxs
——with-config-file-path=/usr/local/lib——with-mysql
make
make install
cp php.ini-dist /usr/local/lib/php.ini
4.配置
vi /usr/local/apache/conf/httpd.conf對apache做如下配置
#ServerAdmin一行改為您的郵箱地址
#DocumentRoot "/home/httpd/html/" 此處為html文件主目錄
#Options FollowSymLinks MultiViews為安全起見,去掉"Indexes"
# DirectoryIndex default.php default.phtml default.php3 default.html
default.htm
#
# 設置apache的默認文件名次序
#AddType application/x-httpd-php .php .phtml .php3 .inc
#AddType application/x-httpd-php-source .phps
# 設置php 文件後綴
存檔退出
vi /usr/local/lib/php.ini
#register-golbals = On
存檔退出
5.啟動apache
/usr/local/apache2/bin/apachectl start
如果提示一下錯誤:
Can not load /usr/local/apache2/moles/libphp5.so into server:
/usr/local/apache2/moles/libphp5.so :
Can't restore segment prot after reloc: Permission denied
Linux
因為無法載入php 模塊,在調試PHP 程序是提示下載php ,或者顯示php 源
代碼,解決方法:
修改 httpd.conf
LoadMole php5_mole moles/libphp5.so
AddType application/x-httpd-php .php
執行:chcon /usr/local/apache2/moles/libphp5.so -t shlib_t
注銷系統重新進入
/usr/local/apache2/bin/apachectl start
3. 在linux下怎麼在不重新安裝apache的情況下, 添加 php_pdo_mysql 模塊
一、php5編譯參數如下:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/ --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/local/libxml2 --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-exif --enable-calendar --enable-magic-quotes --enable-wddx --enable-dba --with-qdbm && make && make install
二、用phpize來載入pdo_mysql,
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Mole Api No: 20060613
Zend Extension Api No: 220060519
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
三、編輯/usr/local/etc/php.ini文件,添加一句extension=pdo.so,重啟apache後生效。
四、驗證php,輸入php – m命令,裡面有pdo_mysq.so
4. 在Linux環境下,APACHE和PHP配置文件怎麼設置(RPM包)
LAMP配置與應用 LAMP(Linux+Apache+Mysql+Php)配置:
Fedora 5已默認安裝了php,可以使用rmp -q php查看其版本號
安裝mysql客戶端mysql(與perl-DBI包有依賴關系,要先安裝)
安裝mysql服務端mysql-server(與perl-DBD包有依賴關系,要先安裝)
安裝php支持mysql的模塊php-mysql(與php-pdo包有依賴關系,要先安裝)
Mysql的web管理工具phpMyAdmin
安裝
下載並解壓phpMyAdmin的包到某個web目錄(或為phpMyadmin建立虛擬主機,將該包解壓到虛擬主機目錄)
#tar -xzvf phpMyAdmin-2.10.0.2-all-languages.tar.gz
執行下列命令:
#cd phpMyAdmin
#mkdir config #建立一個用來保存配置的目錄
#chmod o+rw config #更改該目錄的許可權為屬主可讀寫
#cp config.sample.inc.php config/ #將當前目錄下的config.sample.inc.php復制到config
#chmod o+w config/config.inc.php # 使該文件的屬主具有寫許可權
運行安裝向導頁面
在瀏覽器中打開scripts/setup.php,按照向導頁面添入相關信息,最後單擊「保存」,則所做的配置保存在config/config.inc.php中。(註:如果config子目錄沒有建立,或沒有對該文件的寫許可權的話,則會出現"Cannot load or save configuration."的提示,這種情況下應選擇「DownLoad」下載到本地,再上傳到phpMyAdmin的主目錄下 ),主要有以下樣目需要添寫:
User for config auth__________________
Password for config auth__________________
phpMyAdmin control user____________________
phpMyAdmin control user password______________________
phpMyAdmin database for advanced features__________________
配置成功保存的話,執行下面命令
#mv config/config.inc.php . #將配置文件移動到phpMyAdmin的主目錄
#chmod o-r config.inc.php #為安全起見,移去該文件的讀寫許可權
在瀏覽器中打開phpMyAdmin對應的站點
phpbb應用
註:以下頭3步有關mysql的操作也可以在webmin中完成.
mysql的賬號管理
1) 要設置root用戶的密碼為123456,則在系統提示符下執行下面的命令:
#mysqladmin -u root -p password "123456"
2) 要在mysql命令行客戶端,設置root用戶的密碼為123456,則需執行以下命令:
mysql> use mysql;
mysql> update user set Password=password('123456') where User='root';
mysql> flush privileges;
3) 如果要新增用戶u1,給他授予對資料庫bb中所有表(*)的所有許可權(all),密碼設為888888,則在mysql提示符下:
mysql> grant all on bb.* to 'u1'@'localhost' identified by '888888';
如果root用戶有密碼,則進入mysql客戶端需用下面的命令:#mysql -u root -p
新建phpbb論壇所要用到的資料庫:mysql>create database XXX;
為phpbb所在目錄新建虛擬主機
在瀏覽器中訪問該虛擬主機,以安裝phpbb
注意:在安裝結尾,選擇下載配置文件,自行上傳.然後刪除install,contrib兩個目錄
php配置實例
1.使用Apache配置基本的web站點,使客戶端瀏覽簡體中文網頁能正常顯示、新增支持的主頁文件index.htm index.php default.htm default.html。最後要能在其它計算機上通過域名訪問,比如www.yyy.net03.org。
2.在web站點下實現虛擬目錄,即web站點的子目錄,該子目錄與主目錄不一定是上下目錄關系.同時,允許該目錄有目錄列表功能(即在沒有找到主文件件的時候,顯示當前目錄下的列表).
3.實現Linux用戶個人站點.
4.配置多個基於名稱的虛擬主機,比如www1.yyy.net03.org,www2.yyy.net03.org。最後要能在其它計算機上通過域名訪問。
5.配置多個基於IP的虛擬主機,比如lit.yyy.net03.org,mil.yyy.net03.org。最後要能在其它計算機上通過域名訪問。
6.配置LAMP環境
7.配置phpbb論壇,並使該論壇可以通過形如bbs.yyy.net03.org的形式訪問。
(*)8. 刪除系統原有Apache、php、Mysql項目,使用源文件安裝最新版本的Apache、php、Mysql
利用源代碼安裝LAMP
首先要在相關網站獲取Apache、Mysql、Php的源碼包,一般擴展名為xxx.tar.gz.
刪除系統原有Apache、php、Mysql項目,可能要用到下面的命令
# rpm -e xxx
# rpm -e xxx nodeps #不考慮依賴關系而刪除xxx包
# rpm -e xxx yyy zzz #刪除xxx,yyy,zzz包
如果無法刪除一個RPM包,可以使用以下兩步:
#rpm -f /var/lib/rpm
#rpm --rebuilddb
或:
#rpm -ivh --justdb xxx
#rpm -e xxx
1. 安裝Apache(httpd-2.2.8)
# ./configure --enable-so
# make
# make install
# /usr/local/apache2/bin/apachectl start
2. 安裝Mysql(Mysql-5.0.22)
1) 建立用戶及組,如果在/etc/passwd中已有該用戶,則下列操作可以省略
shell> groupadd mysql
shell> useradd -g mysql mysql
2) 解壓、配置編譯安裝
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql #配置(指定mysql安裝路徑)
shell> make #編譯
shell> make install #安裝
3) 配置mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf #建立mysql配置文件
shell> cp support-files/mysql.server /etc/init.d/ #建立mysql控制腳本
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql #建立mysql系統資料庫
shell> chown -R root . #更改當前目錄及子目錄所有者
shell> chown -R mysql var #更改var目錄及子目錄所有者
shell> chgrp -R mysql . #更改當前目錄及子目錄所屬組
4) 啟動mysql
shell> bin/mysqld_safe --user=mysql & #以後台模式運行mysqld服務
shell> chkconfig --list | less #查看服務列表
shell> chkconfig --add mysql.server #將mysql.server添加到服務列表
shell> chkconfig --list | less #查看服務列表
shell> service mysql.server restart
shell> /usr/local/mysql/bin/mysqladmin -u root -p password '888888' #更改mysql管理用戶root的密碼
3. 安裝php(php5 on Apache 2 Shared Mole Version)
1) tar -zxvf php-NN.tar
2) cd php-NN
3) ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
4) make
5) make install
6) 建立php配置文件php.ini
# cp php.ini-dist /usr/local/lib/php.ini
7) 編輯http配置文件 httpd.conf 使之載入PHP模塊
對於 PHP 4,添加下句:
LoadMole php4_mole moles/libphp4.so
對於 PHP 5,添加下句:
LoadMole php5_mole moles/libphp5.so
8) 編輯http配置文件 httpd.conf,使之能解析擴展名為php的文件
AddType application/x-httpd-php .php .phtml
9) 編輯http配置文件 httpd.conf,修改主頁文件
DirectoryIndex index.php index.htm index.html
10) 重啟httpd服務
# /usr/local/apache2/bin/apachectl start
或
# /usr/local/apache/bin/apachectl -k start
11) 編輯index.php文件,並在瀏覽器中訪問該站點,如果出現關於php的當前配置信息(其中有mysql的配置項),表示LAMP安裝成功。
$vi index.php
<?php
phpinfo()
?>
5. linux下,當php以apache模塊存在時如何獲取正確的進程pid
不太清楚你要解決的問題。即使可以獲取到准確的pid,如果不及時使用,有可能那個pid就會已經不存在或者被其他進程佔用了。