LAMP純?cè)创a編譯安裝日志-創(chuàng)新互聯(lián)

一.LAMP構(gòu)架的安裝與經(jīng)驗(yàn)技巧(源碼安裝好處。是便于管理,可以選定參數(shù),可以使用新版本)

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),創(chuàng)新互聯(lián)面向各種領(lǐng)域:PE包裝袋成都網(wǎng)站設(shè)計(jì)全網(wǎng)營(yíng)銷推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。

相關(guān)軟件列表:

# ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"
    apr-1.4.5.tar.gz
    apr-util-1.3.12.tar.gz
    autoconf-2.61.tar.gz
    freetype-2.3.12.tar.gz
    httpd-2.4.18.tar.bz2
    jpegsrc.v6b.tar.gz
    libgd-2.1.1.tar.xz
    libmcrypt-2.5.8.tar.gz
    libpng-1.4.1.tar.gz
    libxml2-2.7.6.tar.gz
    mysql-5.6.17.tar.gz
    pcre-8.10.zip
    php-5.6.18.tar.gz
    zlib-1.2.5.tar.gz

參考解壓方式: for n in *.tar.gz; do tar zxf $n;done;

其余用:             tar xf filename

  1. apache 的安裝與使用經(jīng)驗(yàn)
           動(dòng)態(tài)編譯與靜態(tài)編譯(每次啟動(dòng)服務(wù)的時(shí)候都加載)
       (apache的擴(kuò)展插件是通過模塊機(jī)制擴(kuò)展的。apache支持PHP是通過編譯模塊然后加載模塊實(shí)現(xiàn)的。)
    (1) apache 需要的相關(guān)庫(kù)文件 apr apr-util pcre(支持rewrite功能)
       cd apr-1.4.5
       ./configure --prefix=/usr/local/apr
       make && make instal
       cd apr-util-1.3.12
       ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
       make && make install
       cd pcre-8.10
       ./configure --prefix=/usr/local/pcre
       make&&make install
    下面是功能模塊(使apache支持功能起到壯大apache的作用)
    (2) 安裝libxml2
       cd libxml2-2.7.6
       ./configure --prefix=/usr/local/libxml2
       make && make install
    (3)安裝libmcrypt
       cd libmcrypt-2.5.8
       ./configure --prefix=/usr/local/libmcrypt
       make && make install
    (4)安裝zlib
       cd zlib-1.2.5
       ./configure
       make && make install
    (5)安裝 libpng
        cd libpng-1.4.1
        ./configure --prefix=/usr/local/libpng
        make && make install
    (6)安裝jpeg6
       此安裝包無法自動(dòng)創(chuàng)建目錄需要手動(dòng)添加
       mkdir /usr/local/jpeg6
       mkdir -p /usr/local/jpeg6/{lib,bin,include}
       mkdir -p /usr/local/jpeg6/man/man1
       cd jpeg-6b
        ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
        make && make install
     錯(cuò)誤checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized
     或者出現(xiàn)make: ./libtool: Command not found
       一般原因是 所以來的libtool 庫(kù)文件版本低或缺失。
       解決方法:安裝高版本的libtool 然后拷貝2個(gè)文件
       cp /usr/share/libtool/config/config.sub .
       cp /usr/share/libtool/config/config.guess .
       繼續(xù) make && make install
    (7)安裝freetype
        cd freetype-2.3.12
        ./configure --prefix=/usr/local/freetype
        make && make install
    (8)安裝autoconf
       cd autoconf-2.61
       ./configure
       make && make install
    (9)安裝GD庫(kù)
       cd libgd-2.1.1
       ./configure \
       --prefix=/usr/local/gd2/ \
       --enable-m4_pattern_allow \
       --with-zlib=/usr/local/zlib/ \
       --with-jpeg=/usr/local/jpeg6/ \
       --with-png=/usr/local/libpng/ \
       --with-freetype=/usr/local/freetype/
       make && make install
    主題(一)apache源碼編譯安裝
       cd httpd-2.4.18
     ./configure --prefix=/usr/local/apache2 \
    --enable-mods-shared=all \
    --enable-so \
    --enable-proxy-ajp \
    --enable-rewrite \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util \
    --with-pcre=/usr/local/pcre
       make && make install
       # /usr/local/apache2/bin/apachectl start
       # curl 127.0.0.1
       <html><body><h2>It works!</h2></body></html>
    apache下的的主要目錄;
    bin build cgi-bin conf error htdocs icons include logs man manual modules
       (1)bin 是一些命令的存放位置。如httpd 提供apache服務(wù)管理如啟動(dòng)關(guān)閉。
       使用:./bin/httpd -k {start |restart|stop}
       apxs是編譯模塊相關(guān)的命令(PHP模塊)
       apachectl是調(diào)用httpd服務(wù)的腳本。
       例如查看靜態(tài)編譯的模塊
       # ./bin/apachectl -l
       Compiled in modules:
         core.c
         mod_so.c
         http_core.c
         worker.c
       # ./bin/httpd -l (進(jìn)一步證實(shí)http和apachectl關(guān)系)
           Compiled in modules:
             core.c
             mod_so.c
             http_core.c
             worker.c)
       (2) htdocs 這個(gè)目錄是存放程序員編寫的程序的目錄
       (3) modules 放置apache編譯模塊的目錄。 .so(模塊的后綴名)
       (4) logs 日志文件目錄 包含 pid 文件(包含apache父進(jìn)程)
       *****ps -ef | grep httpd****
       查看子進(jìn)程如果出現(xiàn)不連續(xù)可能是apache出現(xiàn)問題。出現(xiàn)重新啟動(dòng)。
       (5)conf 包含apache的所有配置文件
       (6)cgi-bin 提供一些在線表格的功能。如果不需要需要把這個(gè)目錄下文件清空(減小安全隱患)

    apache 解析PHP語(yǔ)句http.conf里面的主要參數(shù)
       DirectoryIndex index.html index.php
       LoadModule php5_module       modules/libphp5.so
       AddType application/x-httpd-php .php

  2. 主題(二)mysql源碼編譯安裝
       cd mysql-5.6.17
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DSYSCONFDIR=/etc \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_MEMORY_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
    -DMYSQL_TCP_PORT=3306 \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci

       Mysql編譯安裝屬性值解析
       #cmake \
       -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
       #指定安裝路徑
       -DMYSQL_DATADIR=/usr/local/mysql/data \
       #指定mysql數(shù)據(jù)(庫(kù))文件的存放路徑
       -DSYSCONFDIR=/etc \
       #配置文件
       -DWITH_MYISAM_STORAGE_ENGINE=1 \
       #引擎支持myisam
       -DWITH_INNOBASE_STORAGE_ENGINE=1 \
       #引擎支持 innodb
       -DWITH_MEMORY_STORAGE_ENGINE=1 \
       #引擎支持 memory-storage
       -DWITH_READLINE=1 \

       -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
       #指定mysql的sock文件路徑
       -DMYSQL_TCP_PORT=3306 \
       #指定mysql端口號(hào)
       -DENABLED_LOCAL_INFILE=1 \
       -DWITH_PARTITION_STORAGE_ENGINE=1 \
       -DEXTRA_CHARSETS=all \
       -DDEFAULT_CHARSET=utf8 \
       -DDEFAULT_COLLATION=utf8_general_ci
       #指定字符集
       錯(cuò)誤:
       CMake Error at cmake/readline.cmake:85 (MESSAGE):
         Curses library not found. Please install appropriate package,
        remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev,
         on Redhat and derivates it is ncurses-devel.
       解決辦法: yum install ncurses-devel -y
               \mv \mv CMakeCache.txt /tmp
           然后重新 cmake(上面的指令如果沒有錯(cuò)誤提示)
           make && make install
       查看是否有mysql用戶和組沒有創(chuàng)建。
            useradd mysql -s /sbin/nologin -M
       修改mysql權(quán)限:
           chown -R mysql.mysql /usr/local/mysql
       進(jìn)入mysql安裝目錄下,執(zhí)行初始化配置腳本,創(chuàng)建系統(tǒng)自帶的數(shù)據(jù)庫(kù)和表
       # ./scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
       啟動(dòng)mysql服務(wù):# ./support-files/mysql.server start
     錯(cuò)誤提示:
       Starting MySQL.... ERROR! The server quit without updating PID file (/usr/local/mysql/data/swallow.pid)
     可能出現(xiàn)的原因和解決方法:
       (1).如果是初次安裝??赡苁浅跏蓟瘺]有成功。在執(zhí)行初始化命令的時(shí)候。提示里面包含2個(gè)OK (代表成功。這種情況重新初始化
       (2)可能原來系統(tǒng)安裝過mysql ??梢杂胮s -ef | grep msyql 查看。然后結(jié)束進(jìn)程:pkill mysql
       (3)data 目錄權(quán)限可能不對(duì)。 chmod 755 data
       (4)查看屬主或?qū)俳M 一般 在 創(chuàng)建mysql用戶 的后面就會(huì) chown -R mysql:mysql /usr/local/mysql (這個(gè)可能性不大)
       啟動(dòng)mysql程序:
           ./bin/mysql
       可以產(chǎn)看mysql狀態(tài):
       mysql> status
       --------------
       ./bin/mysql Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using EditLine wrapper

       Connection id:         1
       Current database:
       Current user:          root@localhost
       SSL:                   Not in use
       Current pager:         stdout
       Using outfile:         ''
       Using delimiter:       ;
       Server version:        5.6.17 Source distribution
       Protocol version:      10
       Connection:            Localhost via UNIX socket
       Server characterset:   utf8
       Db    characterset:   utf8
       Client characterset:   utf8
       Conn. characterset:   utf8
       UNIX socket:           /var/lib/mysql/mysql.sock
       Uptime:                7 min 7 sec
       Threads: 1 Questions: 5 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.011
       --------------
    主題(三) PHP源碼編譯安裝
       cd php-5.6.18
    ./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-apxs2=/usr/local/apache2/bin/apxs \
    --with-mysql=/usr/local/mysql/ \
    --with-libxml-dir=/usr/local/libxml2/ \
    --with-png-dir=/usr/local/libpng/ \
    --with-jpeg-dir=/usr/local/jpeg6/ \
    --with-freetype-dir=/usr/local/freetype/ \
    --with-gd=/usr/local/gd2/ \
    --with-zlib-dir=/usr/local/zlib/ \
    --with-mcrypt=/usr/local/libmcrypt/ \
    --with-mysqli=/usr/local/mysql/bin/mysql_config \
    --with-xpm-dir=/usr/lib64/ \
    --enable-soap \
    --enable-mbstring=all \
    --enable-sockets
       參數(shù)詳解;
           ./configure \
           --prefix=/usr/local/php \
           #安裝路徑
           --with-config-file-path=/usr/local/php/etc \
           #PHP的配置文件路徑
           --with-apxs2=/usr/local/apache2/bin/apxs \
           #與apache連接需要的支持模塊(工具)
                   --with-mysql=/usr/local/mysql/ \
                   --with-libxml-dir=/usr/local/libxml2/ \
                   --with-png-dir=/usr/local/libpng/ \
                   --with-jpeg-dir=/usr/local/jpeg6/ \
                   --with-freetype-dir=/usr/local/freetype/ \
                   --with-gd=/usr/local/gd2/ \
                   --with-zlib-dir=/usr/local/zlib/ \
                   --with-mcrypt=/usr/local/libmcrypt/ \
                   # PHP需要的所有前面安裝的連接模塊
           --with-mysqli=/usr/local/mysql/bin/mysql_config \
           #指定PHP程序去連接mysql的方式
           #PHP5.3。3以后開發(fā)了mysqlnd。是PHP新的連接mysql的驅(qū)動(dòng)配置方式:
               --with-mysql=mysqlnd \
               --with-mysqli=mysqlnd \
               --with-pdo-mysql=mysqlnd \
           如果想把這3種都加載可以把
           --with-mysqli=/usr/local/mysql/bin/mysql_config \
           這句換成上面3句。
           #這里需要注意的是;mysql的連接mysql方式有3種。分別是:mysql,mysqli和pdo
           #這里需要關(guān)注2個(gè);mysqli 和pdo。(他們是主流的支持高版本的)
           --with-xpm-dir=/usr/lib64/ \
           --enable-soap \
           --enable-mbstring=all \
           --enable-sockets
       錯(cuò)誤:configure: error: xpm.h not found.
       解決方法:yum install libXpm-devel -y
       make && make install
     PHP動(dòng)態(tài)加載模塊的方法:如果在靜態(tài)編譯的時(shí)候那個(gè)模塊沒有編譯進(jìn)去可以動(dòng)態(tài)加載。
       舉例:查看源碼下的模塊目錄;
           cd /soft/php-5.6.18/ext/
           下面的模塊都可以通過動(dòng)態(tài)加載,編譯進(jìn)去。以ftp 為例;
           cd ftp
           /usr/local/php/bin/phpize (借助這個(gè)命令生成所需的configure 等一系列的安裝文件)
           ./configure --with-php-config=/usr/local/php/bin/php-config
           make && make install
           至此,就把ftp這個(gè)模塊編譯安裝完成了。然后,需要去加載文件(修改php.ini)
           cd /usr/local/php/etc/
           vim php.ini (初次安裝沒有這個(gè)文件可以去/soft/php-5.6.18/源碼目錄去拷貝
           php.ini-development php.ini-production 一般這兩個(gè)文件運(yùn)維常用第二個(gè))
           查找到 extension 相關(guān)的注釋地方
           添加一下兩句:(模塊在PHP程序下的位置{一般編譯動(dòng)態(tài)模塊后會(huì)提示的}和模塊的名稱)
           extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"
           extension = ftp.so
           如果要加載模塊需要重新啟動(dòng)apache服務(wù)器。
            /usr/local/apache2/bin/httpd -k restart
           查看PHP模塊加載成功與否;可以用php 命令顯示看是否有添加
           /usr/local/php/bin/php -m
       測(cè)試lamp是否搭建成功:
       在apach3的htdocs目錄下新建.php文件
        vim ./htdocs/info.php
        <?php
        phpinfo();
        ?>
        瀏覽器測(cè)試:http://192.168.1.140/info.php
    結(jié)果顯示空白。
        解決思路:查看 /usr/local/apache2/modules/ 是否含有 libphp5.so這個(gè)模塊。
        (這個(gè)模塊是apache負(fù)責(zé)PHP解析的)
        修改配置文件:http.conf
           ServerName loacalhost:80
       (仿照這行添加AddType application/x-gzip .gz .tgz)
        AddType application/x-httpd-php .php
       加載pdo-mysql 的錯(cuò)誤:make 錯(cuò)誤
       /soft/php-5.6.18/ext/pdo_mysql/php_pdo_mysql_int.h:27:34: error: ext/mysqlnd/mysqlnd.h: No such file or directory
       解決方法:cp -a /soft/php-5.6.18/ext/pdo_mysql /usr/local/php/include/php/ext/
       這里的思路是 :make 是在安裝目錄下操作。不是在源碼目錄操作。需要把依賴的文件放置到安裝路徑下。方便應(yīng)用。
       但是:遺憾的是安裝完成后,不可以加載。用常規(guī)方法:
           extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"
           extension = pdo_mysql.so
       重新啟動(dòng)了好多httpd 也沒加載成功。用 bin/php -m 一直沒有查看到。我可以確定修改php.ini文件生效,把那個(gè)ftp模塊注釋掉后
       就看不到那個(gè)模塊出現(xiàn)。所以,只好重新編譯的。
       將編譯的--with-mysqli=/usr/local/mysql/bin/mysql_config \ 語(yǔ)句換成了:
               --with-mysql=mysqlnd \
               --with-mysqli=mysqlnd \
               --with-pdo-mysql=mysqlnd \
       這幾句。支持3種方式連接mysql。這里mysqlnd是PHP5.3以上的默認(rèn)連接mysql的引擎
       PHP不在支持?jǐn)U展mysql(mysqli) 編譯的時(shí)候可以是:--with-pdo-mysql=mysqlnd \
       附上PHP連接的3個(gè)腳本
       cat mysqli.php mysql-pdo.php mysql.php
           <?php
           $conn = mysqli_connect('localhost', 'root', '', 'mysql');
           if(!$conn){
           die("數(shù)據(jù)庫(kù)連接錯(cuò)誤" . mysqli_connect_error());
           }else{
           echo"數(shù)據(jù)庫(kù)連接成功";
           }
           ?>
           <?php
           try{
           $pdo=new pdo("mysql:host=127.0.0.1;dbname=mysql","root","");
           }catch(PDDException $e){
           echo "數(shù)據(jù)庫(kù)連接錯(cuò)誤";
           }
           echo "恭喜!數(shù)據(jù)庫(kù)連接成功";
           ?>
           <?php
           $conn = @ mysql_connect("localhost", "root", "") or die("數(shù)據(jù)庫(kù)連接錯(cuò)誤");
           mysql_select_db("bbs", $conn);
           mysql_query("set names 'utf8'");
           echo "數(shù)據(jù)庫(kù)連接成功";
           ?>
    查看 phpinfo() 信息來查看PHP 詳細(xì)情況。
       上傳文件關(guān)注如下幾個(gè)參數(shù):
       post_max_size = 128M
       upload_max_filesize = 128M
       #這兩個(gè)設(shè)置一樣即可,可以更大但要注意超時(shí)
       max_execution_time = 30
       max_input_time = 600
       memory_limit = 32M

    my.cnf 的執(zhí)行順序:
       1. /etc
       2."$basedir/my.cnf" (需要把/etc/my.cnf 更改)
   php.ini生效路徑問題
   PHP將按照如下順序依次查找該文件:
   1.當(dāng)前工作目錄;
   2.環(huán)境變量PHPRC指明的路徑;
   3.編譯時(shí)指定的路徑。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:LAMP純?cè)创a編譯安裝日志-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://muchs.cn/article46/ejceg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、企業(yè)建站ChatGPT、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站