源碼安裝 linux上的軟體大部分都是c語言開發的 , 那麼安裝需要gcc編譯程式才可以進行源碼安裝. yum install -y gcc #先安裝gcc 安裝源碼需要三個步驟 1) ./configure 在這一步可以定製功能 , 加上相應的選項即可 , 具有什麼選項可以通過 ./configu ...
源碼安裝
linux上的軟體大部分都是c語言開發的 , 那麼安裝需要gcc編譯程式才可以進行源碼安裝.
yum install -y gcc #先安裝gcc
安裝源碼需要三個步驟
1) ./configure
在這一步可以定製功能 , 加上相應的選項即可 , 具有什麼選項可以通過 ./configure --help 命令來查看 . 在這一步會自
動檢測你的linux系統與相關的套件是否有編譯該源碼包時需要的庫 , 因為一但缺少某個庫就不能完成編譯 . 只有檢測通過
後才會生成一個Makefile文件.
2) make
安裝步驟 , 生成相關的軟體存放目錄和配置文件的過程.
3) make install
安裝步驟 , 生成相關的軟體存放目錄和配置文件的過程.
上面介紹的3步並不是所有的源碼包軟體都是一樣的 , 之前也遇到過 , 安
裝步驟並不是這樣, 也就是說源碼包的安裝並非具有一定的標準安裝步驟 . 這就需要你拿到源碼包解壓後 , 然後進入到目錄找相關的幫助文檔 , 通常會以INSTALL 或者 README 文件名.所以 , 你一定要去看一下 . 下麵會編譯安裝一個源碼包來幫你更深刻的去理解如何安裝源碼包.
實際操作步驟
cd ~
wget -c http://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz
#下載源碼包
curl -o
http://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz
#下載源碼包
tar -zxvf httpd-2.4.25.tar.gz #解壓源碼包
cd httpd-2.4.25
./configure --help | less #查看配置幫助
./configure --prefix=/usr/local/apache2 #指定安裝目錄 , 通常/usr/lcoal/是常用的安裝目錄 , 新版本的Apache這一步不通過 , 註意後面的解釋
echo $? 驗證上一步是否成功 ,並不是必須要做的.
ls -l Makefile $查看生成的Makefile 文件
make #編譯
yum install -y make #如果你的linux 系統上面沒有make 這個插件就進行安裝.
echo $?
ls /usr/local/apache2/ #查看安裝後的文件;
cat config.log #如果出錯了 , 先看命令行提示的報錯信息 , 然後再看這個文件;
關於apr not found 的問題解決 , Apache Portable Runtime
##下載並安裝apr這個軟體 , httpd需要依賴他來運行.
wget -c http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure
make && make install
##下載並安裝apr-util這個軟體;
wget -c http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz
tar -zxvf apr-util-1.5.2.tar.gz
cd apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
##下載並安裝pcre
wget -c https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.zip
unzip pcre-8.39.zip
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make && make install
再去編譯httpd
cd apache2
./configure --prefix=/usr/local/apache2 --with-apr=/usr/lcoal/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
apache 的使用
cp /usr/local/httpd/bin/apachectl /sbin/
apachectl start #啟動Apache
##設置Apache開機自啟動
vi /etc/rc.d/rc.local
#增加一行 /sbin/apachectl start
#或者將httpd服務添加到ntsysv服務管理工具
apachectl stop #關閉Apache以免不必要的麻煩
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
修改為
#
#chkconfig: 345 85 15 //#不能省略,註意空格
#description: httpd for 52lamp 20101016 21:54 //任意字元串
#
......
第二行中345的含義:
# 0 - operation completed successfully
# 1 -
# 2 - usage error
# 3 - httpd could not be started
# 4 - httpd could not be stopped
# 5 - httpd could not be started during a restart
修改有關許可權
#cd /etc/rc.d/init.d/
#chmod a+x httpd
#chkconfig --add httpd
#ntsysv
httpd已經在列表中,按F1可以看到剛纔編寫的服務描述httpd for 52lamp 20101016 21:54。
#apachectl start
#ps -e |grep httpd
23247 ? 00:00:00 httpd
23248 ? 00:00:00 httpd
23249 ? 00:00:00 httpd
23251 ? 00:00:00 httpd
23252 ? 00:00:00 httpd
在瀏覽器中輸入127.0.0.1,看起來一切正常;但是區域網內其他電腦不能訪問!
#service iptables stop
如果不想關閉防火牆,放開80埠即可。
#vi /etc/sysconfig/iptables
增加一行-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#service iptables restart //重啟防火牆
現在一切OK
cp /usr/local/apache2/bin/apachectl /sbin/
apachectl start $啟動apachectl
##設置apache開機啟動
vi /etc/rc.d/rc.local
#增加一行 /sbin/apachectl start
#或者將httpd服務添加到ntsysv伺服器管理工具
apachectl stop #關閉Apache以免不必要的麻煩
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
修改為
#!/bin/sh
#
#chkconfig: 345 85 15 //#不能省略,註意空格
#description: httpd for 52lamp 20101016 21:54 //任意字元串
#
......
第二行中345的含義:
# 0 - operation completed successfully
# 1 -
# 2 - usage error
# 3 - httpd could not be started
# 4 - httpd could not be stopped
# 5 - httpd could not be started during a restart
修改有關許可權
#cd /etc/rc.d/init.d/
#chmod a+x httpd
#chkconfig --add httpd
#ntsysv
httpd已經在列表中,按F1可以看到剛纔編寫的服務描述httpd for 52lamp 20101016 21:54。
#apachectl start
#ps -e |grep httpd
23247 ? 00:00:00 httpd
23248 ? 00:00:00 httpd
23249 ? 00:00:00 httpd
23251 ? 00:00:00 httpd
23252 ? 00:00:00 httpd
在瀏覽器中輸入127.0.0.1,看起來一切正常;但是區域網內其他電腦不能訪問!
#service iptables stop
如果不想關閉防火牆,放開80埠即可。
#vi /etc/sysconfig/iptables
增加一行-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#service iptables restart //重啟防火牆
現在一切OK