Linux apache提示安裝C組件和解釋器gcc
特別值得一提的是Linux apache有很多值得學習的地方,這里我們主要介紹Linux apache,包括介紹Linux apache等方面。在Linux下,centos5
1。我最先安排Linux apache-2.2.6
安裝過程如下
- root@localhost Install]#tar -xvzf httpd-2.2.6.tar.gz //解壓tar.gz包
- [root@localhost Install]#cd httpd-2.2.6 //轉到解壓目錄下
- [root@localhost httpd-2.2.6]# ./configure //檢測安裝平臺的目標特征,根據系統環(huán)境及某些自定義工程腳步生產Makefile
- .......
- configure: error: no acceptable C compiler found in $PATH
- See `config.log' for more details.
- configure failed for srclib/apr
提示沒有安裝C組件和解釋器gcc
我用安裝光盤安裝好gcc后重新./configure通過,configure提示缺少包就從安裝光盤上找其rpm包安裝,也可以從網上下載。繼續(xù)[root@localhost httpd-2.2.6]# make //根據configure的結果開始編譯,它從Makefile中讀取指令,然后編譯.configure不通過的話,make也會不通過[root@localhost httpd-2.2.6]# make install //安裝[root@localhost httpd-2.2.6]# make clean //消除臨時文件Linux apache安裝成功,測試一下
啟動Linux apache[root@localhost httpd-2.2.6]# /usr/local/apache2/bin/apachectl start //默認安裝,Linux apache安裝在/usr/local/apache2重啟Linux apache的命令是:/usr/local/apache2/bin/apachectl restart關閉的是:/usr/local/apache2/bin/apachectl stop
如果希望系統每次啟動時自動啟動httpd 服務器,則還要做如下工作。首先,拷貝apachectl 到/etc/rc.d/init.d/,并更名為httpd ,相應的命令是:cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd然后,修改/etc/rc.d/init.d/httpd中的ARGV 行,改成:ARGV="start"最后,在/etc/rc.d/rc5.d目錄下,創(chuàng)建一個指向httpd 的硬鏈接。相應的命令是:ln /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd為了保證在字符模式下啟動紅旗也能提供Web服務,還要在/etc/rc.d/rc3.d目錄下,創(chuàng)建一個指向httpd的硬鏈接。相應的命令是:ln /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S85httpd啟動后,有錯誤會有提示,沒有的直接跳入下一行。在window系統下訪問http://ip可以出現測試頁面。
據網友提示最好的安裝順序是apache->mysql->php,我是先裝了php,然后再裝mysql。導致php不能導入mysql的擴展包。我想在php.ini中可以設置的,但嘗試會還是不能支持mysql,
我只好重裝php。不知哪位網友可以提供這樣的方法。我在網上找了資料都沒找著。呵.我還是先介紹先裝mysql,再裝php吧。省得初裝的網友走點彎路。
2.安排mysql
- [root@localhost Install]# tar zxvf mysql-5.0.16.tar.gz
- [root@localhost Install]# cd mysql-5.0.16
- [root@localhost mysql-5.0.16]# groupadd mysql //增加用戶組mysql
- [root@localhost mysql-5.0.16]# useradd mysql -g mysql -M -s /bin/false //增加用戶
- [root@localhost mysql-5.0.16]# ./configure --prefix=/usr/local/mysql //沒有裝全gcc的網友,
- 需裝上c++預處理程序gcc-c++-**.rpm;prefix=/usr/local/mysql指定mysql 的安裝目錄
出現錯誤configure: error: No curses/termcap library found說明 curses/termcap 庫沒有發(fā)現 查看系統已安裝的加上--with-named-curses-libs所需庫的位置
- [root@localhost mysql-5.0.16#./configure --prefix=/usr/local/mysql \ 指定安裝目錄
- --without-debug \去除debug模式
- --with-extra-charsets=gbk \添加中文字符支持
- --with-extra-charsets=all \添加其他字符支持
- --enable-assembler \使用一些字符函數的匯編版本
- --without-isam \去掉isam表類型支持 現在很少用了 isam表是一種依賴平臺的表
- --without-innodb \去掉innodb表支持 innodb是一種支持事務處理的表,適合企業(yè)級應用
- --with-pthread \強制使用pthread庫(posix線程庫)
- --enable-thread-safe-client \以線程方式編譯客戶端
- --with-client-ldflags=-all-static \
- --with-mysqld-ldflags=-all-static \以純靜態(tài)方式編譯服務端和客戶端 --with-raid \激活raid支持
- --with-named-curses-libs=/usr/lib/libncursesw.so.5
OK,編譯通過或者沒有安裝好ncurses-5.2.tar.gz之后把安裝路徑設置到PATH中(未嘗試過)
- [root@localhost mysql-5.0.16]# make
- [root@localhost mysql-5.0.16]# make install
- [root@localhost mysql-5.0.16]# scripts/mysql_install_db \生成mysql用戶數據庫和表文件
- [root@localhost mysql-5.0.16]# cp support-files/mysql.server /etc/init.d/mysqld \copy啟動的mysqld文件
- [root@localhost mysql-5.0.16]# chmod 700 /etc/init.d/mysqld //修改啟動mysql服務的權限
- [root@localhost mysql-5.0.16]# cd /usr/local
- [root@localhost local]# chmod 750 mysql -R //修改mysql的目錄權限
- [root@localhost local]# chgrp mysql mysql -R //修改目錄所有組
- [root@localhost local]# chown mysql mysql/var -R //修改目錄所有者
- [root@localhost local]# cd mysql/libexec
- [root@localhost libexec]# cp mysqld mysqld.old
- [root@localhost libexec]# strip mysqld
- [root@localhost libexec]# chkconfig --add mysqld //增加mysql服務啟動
- [root@localhost libexec]# chkconfig --level 345 mysqld on //設置mysql服務啟動級別345
- [root@localhost libexec]# service mysqld start //啟動mysql服務
Starting MySQL[ OK ]
- # netstat -atln 看看有沒有3306的端口打開,如果mysqld不能啟動,看看/web/mysql/var下的出錯日志,一般都是目錄權限沒有設置好的問題
- # ln -s /web/mysql/bin/mysql /sbin/mysql
- # ln -s /web/mysql/bin/mysqladmin /sbin/mysqladmin //把庫文件鏈接到默認的位置,這樣你在編譯類似PHP,
- Vpopmail等軟件時可以不用指定mysql的庫文件地址
- # mysqladmin -uroot password "youpassword" #設置root帳戶的密碼
- # mysql -uroot -p
- # 輸入你設置的密碼
- mysql>use mysql;
- mysql>delete from user where password=""; #刪除用于本機匿名連接的空密碼帳號
- mysql>flush privileges;
- mysql>quit
3.安排php-5.2.5
- ./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs
- --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql
- make
- make install
- make clean
- 重啟apache2
- [root@localhost php]# /usr/local/apache2/bin/apachectl restart
- httpd: Syntax error on line 407 of /usr/local/apache2/conf/httpd.conf:
- Cannot load /usr/local/apache2/modules/libphp5.so into server:
/usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied發(fā)現沒有l(wèi)ibphp5.so包的問題可以先查找系統是否有l(wèi)ibphp5.so,如果沒有則重新編譯php發(fā)現/usr/local/apache2/modules沒有l(wèi)ibphp5.so包,我只好再次安phpCannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission
denied確認 Linux apache中的httpd.conf 文件中有LoadModule php5_module modules/libphp5.so 這么一行。 最后,vi /etc/selinux/config 把selinux給disable掉了,reboot,Linux apache啟動成功,其余的PHP什么的都正常了,但還是和網上說的一般,關掉了selinux,系統可能會不安全的。或者使用 #chcon /usr/local/apache2/modules/libphp5.so -t shlib_t后模塊不能加載的問題解決了,這個問題應該只在FC4上有.(未嘗試過)
修改php.ini文件register_globals = Onok!重新啟動一下Linux apache服務器 /usr/local/apache/bin/apachectl restart
【編輯推薦】