Linux下安裝Apache PHP MYSQL

來源:互聯網
上載者:User

Linux下安裝Apache

1.解壓 tar -zxvf httpd-2.2.15.tar.gz

2.進入httpd-2.2.15目錄,運行

[admin@test208003 httpd-2.2.15]$./configure --prefix=/home/admin/apache --enable-so--enable-mods-shared=most --with-mpm=worker 

prefix=<Install_Path> 指明編譯後的二進位檔案安裝到<Install_Path>目錄,用實際安裝路徑替換 <Install_Path>,如--prefix=/usr/local/apache-2.2.15 ,如果省略此配置參數,預設安裝 到/usr/local/apache2目錄。

--enable-so 指明編譯動態載入模組(DSO)支援到httpd二進位檔案,此模組使得Apache的各功能模組可以與核心分開編 譯、運行時動態載入。有了DSO支援,升級和增加模組時只需編譯相關的模組即可,不必重新編譯整個系統。最新版本的 Apache預設編譯此模組到httpd二進位檔案,如果你在使用早期版本的apache並且需要DSO支援,可能要明確指出此選項。

--enable-mods-shared=<MODULE-LIST> 明確指明要以DSO方式編譯的模組,<MODULE-LIST>為空白格分隔的模組名列 表、all或者most,all表示包含所有模組,most表示包含大部分模組,如 --enable-mods-share="rewrite deflate",--enable-mods-share=most,效果等同於多個 --enable-<FEATURE>=share

--with-mpm=<MPM> 先擇Apache多路處理模組,<MPM>={beos|event|worker|prefork|mpmt_os2},prefork為 Unix系統下預設處理模組,它將運行一個非線程型的、預派生的Web伺服器,適合於沒有安全執行緒庫,需要避免線程相容性問 題的系統,它是要求將每個請求相互獨立的情況下最好的MPM,這樣若一個請求出現問題就不會影響到其他請求。worker 為支援混合的多線程多進程的多路處理模組,由於使用線程來處理請求,所以可以處理海量請求,而系統資源的開銷小於基於 進程的MPM,同時,它也使用了多進程,每個進程又有多個線程,以獲得基於進程的MPM的穩定性。如果你的系統是基於線 程安全的,那麼建議使用worker替代prefork,它將使得你的系統得到實際的效能改善。

3.[admin@test208003 httpd-2.2.15]$ make

4.[admin@test208003 httpd-2.2.15]$ make install

5.配置http.conf (注意80連接埠是否被佔用,linux下使用1024之內的連接埠需要root或sudo許可權

User admin

Group admin

上面2個配置是Apache的安全保證,Apache在開啟連接埠之後,就將其本身設定為這兩個選項設定的使用者

和組許可權進行運行,這樣就降低了伺服器的危險性。這個選項也只用於 Standalone模式,inetd模式在inetd.conf中指定

運行Apache的使用者。由於伺服器必須執行改變身份的setuid()操作,因此初始進程應該具備root許可權,如果是使用非root

使用者來啟動Aapche,這個配置就不會發揮作用。

 

 

6.切換至apache 的bin 目錄下

[admin@test208003 bin]$ ./apachectl -k start

 Linux下安裝PHP

1.解壓,進入目錄,同apache

2.運行

[admin@test208003 php-5.2.14]$ ./configure --prefix=/home/admin/php--with-apxs2=/home/admin/apache/bin/apxs  --with-config-file-path=/home/admin/php/lib

3.運行make和make install ,同apache,

複製php.ini-recommended到php的lib目錄下,改名為php.ini

修改apache設定檔,加入AddType application/x-httpd-php .php

4.php安裝獨立擴充,拿curl擴充舉例,同樣下載curl包,將其解壓安裝

[admin@test208003 curl-7.13.0]$ ./configure --prefix=/home/admin/curl[admin@test208003 curl-7.13.0]$ make[admin@test208003 curl-7.13.0]$ make install

此處注意make時可能會報錯gcc: /usr/lib/libidn.so: No such file or directory 解決方案:

方法一: 執行ln -s /usr/lib64/libidn.so.11.4.6 /usr/lib/libidn.so

一定要注意你的libidn的版本號碼和lib目錄,跟機器位元相關,此處測試的機器是64的,所以選擇lib64.

方法二: ./configure --prefix=/home/admin/curl --with-libidn=/usr/lib64 即指定路徑,還要運行autoreconf.

方法三: ./configure LDFLAGS=-L/usr/lib64 (指定一個環境變數,這個就是告訴gcc去哪兒找.so檔案)

然後編譯產生擴充,進入php源碼目錄

[admin@test208003 php-5.2.14]$ cd ext/[admin@test208003 ext]$ cd curl/[admin@test208003 curl]$ /home/admin/php/bin/phpize[admin@test208003 curl]$./configure --with-curl=/home/admin/curl        --with-php-config=/home/admin/php/bin/php-config[admin@test208003 curl]$make[admin@test208003 curl]$ make installInstalling shared extensions:     /home/admin/php/lib/php/extensions/no-debug-zts-20060613/[admin@test208003 curl]$ cd /home/admin/php/lib/php/extensions/no-debug-zts-20060613/[admin@test208003 no-debug-zts-20060613]$ ls  curl.so[admin@test208003 no-debug-zts-20060613]$

可以看到curl.so已經產生了,在php.ini裡,設定擴充目錄: extension_dir = /home/admin/php/lib/php/extensions/no-debug-zts-20060613/" 並添加擴充模組引用: extension = curl.so 重啟apache即可

5.安裝pdo的mysql擴充進入php源碼目錄

[admin@test208003 php-5.2.14]$ cd ext/[admin@test208003 ext]$ cd pdo_mysql/[admin@test208003 pdo_mysql]$ /home/admin/php/bin/phpize[admin@test208003 pdo_mysql]$ ./configure --with-php-config=/home/admin/php/bin/php-config[admin@test208003 pdo_mysql]$ make[admin@test208003 pdo_mysql]$ make install

最後修改php.ini加入extension=pdo_mysql.so,重啟apache即可

6. php一次性安裝mysql,curl,pdo擴充,更簡單的方法只需在configure參數修改即可

./configure --prefix=/home/admin/php --with-apxs2=/home/admin/apache/bin/apxs --with-config-file-path=/home/admin/php/lib --with-mysql=/home/admin/mysql --with-pdo-mysql=/home/admin/mysql --with-curl=/home/admin/curl --enable-mbstring

這樣配置的前提是mysql資料庫和curl已裝好。

 Linux下安裝MySQL

1.解壓mysql的源碼包mysql-5.1.50.tar.gz,切換到安裝目錄下

./configure --prefix=/home/admin/mysql --sysconfdir=/home/admin/mysql --localstatedir=/home/admin/mysql/data--with-unix-socket-path=/home/admin/mysql/tmp/mysql.sock --with-charset=gbk --with-plugins=innobase --with-client-ldflags=-all-static--with-mysqld-ldflags=-all-static

sysconfdir表示mysql的設定檔路徑,localstatedir表示資料檔案路徑,socket配置和最後2個屬性主要用來提升效能

如果要使用innodb引擎,記得加上--with-plugins=innobase

 make
 make install

2.複製/home/admin/mysql/share/mysql/my-medium.cnf 到mysql根目錄下,改名為my.cnf

切換到mysql的bin目錄下,運行

./mysql_install_db --basedir=/home/admin/mysql --datadir=/home/admin/mysql/data

3.複製/home/admin/mysql/libexec/mysqld到mysql的bin目錄下,啟動mysql服務

/home/admin/mysql/bin/mysqld_safe --ledir=/home/admin/mysql/bin --log-error=/home/admin/mysql/data/t.err --datadir=/home/admin/mysql/data --socket=/home/admin/mysql/tmp/mysql.sock --pid-file=/home/admin/mysql/data/mysqld.pid &

再用ps命令查看mysql是否啟動,如果不能啟動用netstat命令檢查3306連接埠是否被佔用,如果是則修改my.cnf的連接埠配置。

切換到mysql的bin目錄下,運行 ./mysqladmin -u root password '123' 來修改root登入密碼

修改/home/admin/mysql/share/mysql/mysql.server代碼

pid_file=/home/admin/mysql/data/mysqld.pid

停止mysql服務

/home/admin/mysql/share/mysql/mysql.server stop

為了方便,可以把啟動和停止mysql服務命令寫成shell指令碼.

建議在my.cnf中添加sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

━━━━━━━━Written By 桃子━━━━━━━━

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.