Centos7最小化安裝下安裝,編譯lamp環境

centos7默認的php是5.5,mysql已經變爲mariadb,如果想要自定義的配置,需要自己手動來編譯配置.以下步驟做過操作驗證.

 

1、安裝centos7選擇基本安裝,配置完網絡後首先要先關閉firewall:

停止firewall

# systemctl stop firewalld.service 

禁止firewall開機啓動

# systemctl disable firewalld.service 

2、安裝iptables防火牆

yum方式安裝iptables

# yum install iptables-services 

編輯防火牆配置文件

vi /etc/sysconfig/iptables 

添加下面三句話到默認的22端口這條規則的下面

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT

最後重啓防火牆使配置生效

# systemctl restart iptables.service

設置防火牆開機啓動

# systemctl enable iptables.service 

 

3,關閉SELINUX

編輯selinux的配置文件

vi /etc/selinux/config

註釋掉下面兩行

#SELINUX=enforcing 

#SELINUXTYPE=targeted 

增加一行

SELINUX=disabled 

保存,關閉

ESC 

:wq 

重啓系統

shutdown -r now 

 

4,centos7最小化安裝沒有wget工具,這個我們後面下源碼會用到,所以先安裝這個

yum  install -y  wget 

 

5,增加第三方的yum源,有些壞境需要的軟件,centos自帶的源裏,我們增加兩個源,方便後面的yum安裝壞境需要的組件,要不一個一個的去下源碼編譯太過麻煩,我這裏只增加了epel和rpmforge兩個源

第一步,源文件如果衝突,需要有個優先級,所以先安裝yum-priorities

yum install yum-priorities 
第二步,設置CentOS默認yum源的優先級爲最高
cd /etc/yum.repos.d/ #進入yum源目錄
vi CentOS-Base.repo #在[base]、[updates]、[extras]組下面添加priority=1,在[centosplus]、[contrib]組下面添加priority=2

第三步,安裝epel

 #rpm -ivh  http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm --replacefiles

 #rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

 #vi /etc/yum.repos.d/epel.repo 

修改epel yum源優先級,priority=11

第四步驟,安裝rpmforge yum源

#wget http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
#wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
#rpm --import RPM-GPG-KEY.dag.txt
#rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
#vi /etc/yum.repos.d/rpmforge.repo 

修改rpmforge yum源優先級,priority=12

 

 

6,yum update

 

7,yum安裝apache

 #yum install -y httpd httpd-devel 

啓動apache

 systemctl start httpd.service

設置爲自啓動

 systemctl enable httpd.service

 

 

8,yum安裝mysql

 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server

成功安裝之後重啓mysql服務

#systemctl start mysqld.service

設置爲自啓動

#systemctl enable mysqld.service

設置mysql密碼

#mysql -uroot

mysql> SET PASSWORD = PASSWORD('123456');

啓動mysql

systemctl stop mysqld.service

增加到自啓動

systemctl start mysqld.service

因爲編譯php需要用到mysql的一些庫文件所以還需要安裝mysql庫

yum install -y mysql-devel

 

9,一次性yum安裝編譯php所需的組件,這些都是在一個錯誤一個錯誤的試驗後,爲了解決錯誤安裝的,不要嫌多.

yum  install -y   gcc cmake make gcc-c++  apr*  automake autoconf libxml2 libxml2-devel openssl openssl-devel curl* libjpeg* libpng* freetype* zlib-devel  zip unzip gzip ncurses* pcre-devel bzip2* gd gd-devel kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm*  php-common php-gd ncurses* libtool*  patch  libmcrypt libmcrypt-devel mcrypt mhash --skip-broken

 

10,下載安裝php

我是在root用戶下直接安裝的,所以進入root家目錄

#cd /root

下載最新的php-5.3.29

#wget http://cn2.php.net/get/php-5.3.29.tar.gz/from/this/mirror

解壓縮

#tar -zxvf mirror

進入php目錄

#cd php-5.3.29

開始編譯

#./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/bin/apxs  --with-mysql=/usr/bin --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local  --with-jpeg-dir  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/bin --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex  --enable-ftp --enable-mbstring --with-mcrypt  --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets  --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-zlib --enable-pdo --with-pdo-mysql 

 

注:如果出現Cannot find libmysqlclient的錯誤,就find下libmysqlclient*,找到libmysqlclient.so文件,做一個軟連接放到/usr/lib下就好了

     #find / -name libmysqlclient*

     你找的目錄可能和我的不同,以你的爲準建立鏈接

     #ln -s /usr/lib64/mysql/libmysqlclient.so.18.1.0 /usr/lib/libmysqlclient.so

 

# make

# make install

 

10,編輯配置

# vi /etc/httpd/conf/httpd.conf

一,增加 AddType application/x-httpd-php .php .php3 .php5 .phtml

二,網站跟目錄配置修改 AllowOverride All

三,修改支持文件類型

<IfModule dir_module>

    DirectoryIndex index.html index.htm default.html default.htm index.php default.php u.php

</IfModule>

 

拷貝php配置文件到配置目錄

#cp php.ini-production /usr/local/php/etc/php.ini

修改php.ini

#vi /usr/local/php/etc/php.ini

增加時區設置

date.timezone = Asia/Shanghai

其他優化設置,可以自行配製

保存退出後重啓動系統

 

另外,需要說明的,在編譯過程中,總結遇到的問題,常常都是以下原因

     1,安裝了程序,但是沒有安裝庫,如安裝了mysql,但是沒有安裝mysql-devel,安裝了gd,但是沒有安裝ge-devel等等,這些在編譯過程中常常後需要調用一些庫文件時候出現錯誤,如果你的電腦裏沒有錯誤表明的以lib開頭的*.so文件,那麼大部分都是這個原因

     2,很多文件安裝在了/usr/lib64下而不是/usr/lib下,編譯過程常常自動搜索/usr/lib,如果這裏沒有相應文件就會報錯,如果經過查找你安裝了相應文件,那麼你只需要租個連接到/usr/lib下就可以

     3,php 編譯選項不對,最常見的如--with-apxs2=/usr/bin/apxs  --with-mysql=/usr/bin,這兩個選項各個環境可能有所不同,你需要根據自己的環境來配置位置,而不能一味的跟着網上的文章走.

 

再另:常用的一些linux下的命令一定要學會,這對你定位錯誤,解決問題起決定作用

               查找源yum源  

               #yun search name

               顯示yum已安裝軟件的信息

               #yum info name

               顯示軟件的安裝路徑,yum安裝的也可以這樣查看

               # whereis name,

               或者 #rpm -qal name

               查找文件

               # find / -name 'php*'

               查看文件屬於哪個軟件包  

               # rpm -qf name

               查看軟件包都安裝到了那些目錄下

               # rpm -qla name

               查看文件所屬於的軟件包把包內所有文件都安裝在了那些目錄下 

               # rpm -qlf name

      安裝一個包

               rpm -ivh name/url
               升級一個包 
               rpm -Uvh   
               移走一個包 
               # rpm -e    

               --replacefiles用於覆蓋安裝

                # rpm -ivh  http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm --replacefiles

               顯示目錄或文件

                #ls -lp|less 

                    l :顯示詳細

                    p : 在每個文件名後附上一個字符以說明該文件的類型,“*”表示可執行的普通文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套

                    接字(sockets)。

                    less: 分屏

               顯示某一文件或目錄

               #ls -ldp name*

               刪除文件 

            #rm -f  filename

            wget斷點續傳 

            #wget -c url

            編輯文件

             #vi name

               打開文件時候是指令行模式

               a進入編輯模式

               o進入編輯模式並增加空行

               ESC切換編輯模式到指令行模式

               指令行模式下

               dd刪除整行

               yy複製整行

      /name+回車搜索制定詞

        :set nu增加行號

       wq和:x是存盤退出

      :q!強制退出不保存

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章