新自媒体 發表於 2023-9-1 00:00:00

ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法

<p>
        本文讲述了ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法。分享给大家供大家参考,具体如下:</p>
<p>
        <strong>ubuntu apt-get方式安装nginx</strong></p>
<p>
        参考:</p>
<p>
        http://nginx.org/en/linux_packages.html</p>
<p>
        首先</p>
<p>
        in order to authenticate the nginx repository signature and to eliminate warnings about missing PGP key during installation of the nginx package, it is necessary to add the key used to sign the nginx packages and repository to the apt program keyring.</p>
<p>
        下载密钥</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_111906">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">wget http:</code><code class="bash plain">//nginx</code><code class="bash plain">.org</code><code class="bash plain">/keys/nginx_signing</code><code class="bash plain">.key</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后添加</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_246102">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-key add nginx_signing.key</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        加入nginx的repository</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_861744">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cd</code> <code class="bash plain">/etc/apt/sources</code><code class="bash plain">.list.d/</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">vim nginx.list</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        若安装稳定版本,则输入以下内容</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_447510">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">deb http:</code><code class="bash plain">//nginx</code><code class="bash plain">.org</code><code class="bash plain">/packages/ubuntu/</code> <code class="bash plain">trusty nginx</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">deb-src http:</code><code class="bash plain">//nginx</code><code class="bash plain">.org</code><code class="bash plain">/packages/ubuntu/</code> <code class="bash plain">trusty nginx</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        若最新版本,则输入以下内容:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_860486">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">deb http:</code><code class="bash plain">//nginx</code><code class="bash plain">.org</code><code class="bash plain">/packages/mainline/ubuntu/</code> <code class="bash plain">trusty nginx</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">deb-src http:</code><code class="bash plain">//nginx</code><code class="bash plain">.org</code><code class="bash plain">/packages/mainline/ubuntu/</code> <code class="bash plain">trusty nginx</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后安装</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_336830">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">apt-get update</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">nginx</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装完成</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_867472">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">nginx -</code><code class="bash functions">v</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">nginx version: nginx</code><code class="bash plain">/1</code><code class="bash plain">.8.0</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>MariaDB数据库安装</strong></p>
<p>
        MariaDB是一个开源数据库且100%与MySQL兼容,目标是替代MySQL数据库。</p>
<p>
        MariaDB的背景 :</p>
<p>
        2008年,MySQL被后来被Oracle在2010年收购的Sun Microsystems收购了。 最初被Sun公司的收购由于符合项目的需要而受到MySQL社区的欢呼,但是这种情绪并没有持续太久,接下来被Oracle的收购,不幸期望远远低于预 期。许多MySql的开发者离开了Sun和Oracle公司开始新的项目。在他们中间就有MySQL的创建者以及项目长期技术带头人之一的Michael 'Monty' Widenius。Monty和他的团队创建了MySQL的一个fork版本并且命名它为MariaDB。</p>
<p>
        默认上MariaDB的包并没有在Ubuntu仓库中。要安装MariaDB,我们首先要设置MariaDB仓库。</p>
<p>
        设置 MariaDB 仓库</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_705553">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">software-properties-common</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-key adv --recv-keys --keyserver hkp:</code><code class="bash plain">//keyserver</code><code class="bash plain">.ubuntu.com:80 0xcbcb082a1bb943db</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">Executing: gpg --ignore-</code><code class="bash functions">time</code><code class="bash plain">-conflict --no-options --no-default-keyring --homedir </code><code class="bash plain">/tmp/tmp</code><code class="bash plain">.3GolFM9PZ5 --no-auto-check-trustdb --trust-model always --keyring </code><code class="bash plain">/etc/apt/trusted</code><code class="bash plain">.gpg --primary-keyring </code><code class="bash plain">/etc/apt/trusted</code><code class="bash plain">.gpg --recv-keys --keyserver hkp:</code><code class="bash plain">//keyserver</code><code class="bash plain">.ubuntu.com:80 0xcbcb082a1bb943db</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">gpg: key 1BB943DB: public key </code><code class="bash string">"MariaDB Package Signing Key &lt;package-signing-key@mariadb.org&gt;"</code> <code class="bash plain">imported</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">gpg: Total number processed: 1</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">gpg:        imported: 1</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">add-apt-repository </code><code class="bash string">'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装 MariaDB :</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_199251">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get update</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">mariadb-server</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        在安装中,你会被要求设置MariaDB的root密码。</p>
<p>
        从命令行连接到MariaDB :</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_296597">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">keyun@ubuntu-server:~$ mysql -u root -p</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">Enter password:</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">Welcome to the MariaDB monitor. Commands end with ; or \g.</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">Your MariaDB connection </code><code class="bash functions">id</code> <code class="bash plain">is 43</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">Server version: 10.0.23-MariaDB-1~trusty-log mariadb.org binary distribution</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">Type </code><code class="bash string">'help;'</code> <code class="bash plain">or </code><code class="bash string">'\h'</code> <code class="bash keyword">for</code> <code class="bash plain">help. Type </code><code class="bash string">'\c'</code> <code class="bash plain">to </code><code class="bash functions">clear</code> <code class="bash plain">the current input statement.</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">MariaDB [(none)]&gt;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        MariaDB 服务</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_562599">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">/etc/init</code><code class="bash plain">.d</code><code class="bash plain">/mysql</code> <code class="bash plain">stop</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">/etc/init</code><code class="bash plain">.d</code><code class="bash plain">/mysql</code> <code class="bash plain">start</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        以上只是在Ubuntu上装完MariaDB,下面要设置MariaDB允许远程访问</p>
<p>
        1、如果Ubuntu有设置防火墙或者iptables规则的话,请自行打开</p>
<p>
        2、3306端口是不是没有打开?</p>
<p>
        使用nestat命令查看3306端口状态:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_565819">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">~</code><code class="bash comments"># netstat -an | grep 3306</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。</p>
<p>
        解决方法:修改/etc/mysql/my.cnf文件。打开文件,找到下面内容:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_800597">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># Instead of skip-networking the default is now to listen only on</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># localhost which is more compatible and is not less secure.</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">bind-address = 127.0.0.1</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        把上面这一行注释掉或者把127.0.0.1换成合适的IP,建议注释掉。</p>
<p>
        重新启动后,重新使用netstat检测:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_500617">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">~</code><code class="bash comments"># netstat -an | grep 3306</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">tcp    0   0 0.0.0.0:3306      0.0.0.0:*        LISTEN</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        1. 把用户权限分配各远程用户。</p>
<p>
        登录到mysql服务器,使用grant命令分配权限</p>
<div class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code87084">
        mysql&gt; grant all on . to 你的用户名如root@'%' identified by '你的密码';</div>
<p>
         </p>
<p>
        完成后使用mysql命令连接,提示成功,为了确保正确可以再远程登陆测试一下。</p>
<p>
        <strong>安装PHP7</strong></p>
<p>
        因为是最小化安装的ubuntu,先安装make</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_248126">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash functions">make</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        下载源码</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_863349">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">wget https:</code><code class="bash plain">//downloads</code><code class="bash plain">.php.net/~ab</code><code class="bash plain">/php-7</code><code class="bash plain">.0.2RC1.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">tar</code> <code class="bash plain">-zvxf php-7.0.2RC1.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">cd</code> <code class="bash plain">php-7.0.2RC1</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        根据鸟哥指示,安装gcc4.8</p>
<p>
        使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升(Wordpres的QPS角度衡量) 其实GCC 4.8以前的版本也支持, 但是我们发现它支持的有Bug, 所以必须是4.8以上的版本才会开启这个特性.</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_685313">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">python-software-properties</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">add-apt-repository ppa:ubuntu-toolchain-r</code><code class="bash plain">/test</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get update</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">gcc-4.8 g++-4.8</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --remove-all gcc </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --remove-all g++</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --</code><code class="bash functions">install</code> <code class="bash plain">/usr/bin/gcc</code> <code class="bash plain">gcc </code><code class="bash plain">/usr/bin/gcc-4</code><code class="bash plain">.8 20</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --</code><code class="bash functions">install</code> <code class="bash plain">/usr/bin/g</code><code class="bash plain">++ g++ </code><code class="bash plain">/usr/bin/g</code><code class="bash plain">++-4.8 20</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --config gcc</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">update-alternatives --config g++</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get update</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get upgrade -y</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get dist-upgrade</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        查看版本</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_726199">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">gcc --version</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">gcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">Copyright (C) 2015 Free Software Foundation, Inc.</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">This is </code><code class="bash functions">free</code> <code class="bash plain">software; see the </code><code class="bash functions">source</code> <code class="bash keyword">for</code> <code class="bash plain">copying conditions. There is NO</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">warranty; not even </code><code class="bash keyword">for</code> <code class="bash plain">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        先安装依赖</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_744534">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libxml2 </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libxml2-dev </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">openssl </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libssl-dev </code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">curl </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libcurl4-openssl-dev </code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libgd-dev </code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libxslt-dev</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        因本机lib目录在/usr/lib/x86_64-linux-gnu</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_227222">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">.</code><code class="bash plain">/configure</code> <code class="bash plain">–prefix=</code><code class="bash plain">/usr/local/php</code> <code class="bash plain">–with-curl –with-freetype-</code><code class="bash functions">dir</code> <code class="bash plain">–with-gd –with-gettext –with-iconv-</code><code class="bash functions">dir</code> <code class="bash plain">–with-kerberos –with-libdir=lib</code><code class="bash plain">/x86_64-linux-gnu</code> <code class="bash plain">–with-libxml-</code><code class="bash functions">dir</code> <code class="bash plain">–with-mysqli –with-openssl –with-pcre-regex –with-pdo-mysql –with-pdo-sqlite –with-pear –with-png-</code><code class="bash functions">dir</code> <code class="bash plain">–with-xmlrpc –with-xsl –with-zlib –</code><code class="bash functions">enable</code><code class="bash plain">-fpm –</code><code class="bash functions">enable</code><code class="bash plain">-bcmath –</code><code class="bash functions">enable</code><code class="bash plain">-libxml –</code><code class="bash functions">enable</code><code class="bash plain">-inline-optimization –</code><code class="bash functions">enable</code><code class="bash plain">-gd-native-ttf –</code><code class="bash functions">enable</code><code class="bash plain">-mbregex –</code><code class="bash functions">enable</code><code class="bash plain">-mbstring –</code><code class="bash functions">enable</code><code class="bash plain">-opcache –</code><code class="bash functions">enable</code><code class="bash plain">-pcntl –</code><code class="bash functions">enable</code><code class="bash plain">-shmop –</code><code class="bash functions">enable</code><code class="bash plain">-soap –</code><code class="bash functions">enable</code><code class="bash plain">-sockets –</code><code class="bash functions">enable</code><code class="bash plain">-sysvsem –</code><code class="bash functions">enable</code><code class="bash plain">-xml –</code><code class="bash functions">enable</code><code class="bash plain">-zip</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">make</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cp</code> <code class="bash plain">php.ini-development </code><code class="bash plain">/usr/local/php/lib/php</code><code class="bash plain">.ini</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cp</code> <code class="bash plain">/usr/local/php/etc/php-fpm</code><code class="bash plain">.conf.default </code><code class="bash plain">/usr/local/php/etc/php-fpm</code><code class="bash plain">.conf</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cp</code> <code class="bash plain">/usr/local/php/etc/php-fpm</code><code class="bash plain">.d</code><code class="bash plain">/www</code><code class="bash plain">.conf.default </code><code class="bash plain">/usr/local/php/etc/php-fpm</code><code class="bash plain">.d</code><code class="bash plain">/www</code><code class="bash plain">.conf</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cp</code> <code class="bash plain">.</code><code class="bash plain">/sapi/fpm/init</code><code class="bash plain">.d.php-fpm </code><code class="bash plain">/etc/init</code><code class="bash plain">.d</code><code class="bash plain">/php-fpm</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        最后一条命令,作用是php-fpm随系统自启动。</p>
<p>
        利用php自带的php-fpm管理工具,可以很方便的start,stop,restart<br>
        把管理工具从源码包里放到php/sbin文件夹里,方便使用</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_783501">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cp</code> <code class="bash plain">.</code><code class="bash plain">/sapi/fpm/init</code><code class="bash plain">.d.php-fpm </code><code class="bash plain">/usr/local/php/sbin/</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">cd</code> <code class="bash plain">/usr/local/php/sbin/</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">chmod</code> <code class="bash plain">755 init.d.php-fpm</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置nginx与php-fpm后,通过phpinfo(),看到如下</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" alt="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" src="https://zhuji.jb51.net/uploads/img/202305/cd46cd06379017cfbf11076cb5689a1b.jpg"></p>
<p>
        至此,php7安装成功。</p>
<p>
        安装apache ab压测工具</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_427413">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">apache2-utils</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        压测一下</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterphp" id="highlighter_933916">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="php functions">echo</code> <code class="php string">"hello world"</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_716445">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">ab -n 1000 -c 20 http:</code><code class="bash plain">//10</code><code class="bash plain">.81.36.158:9528/</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        QPS 7000左右</p>
<p>
        接下来开启opcache</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_283709">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">vi</code> <code class="bash plain">/usr/local/php/lib/php</code><code class="bash plain">.ini</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        找到opcache设置</p>
<p>
        添加以下内容</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_392065">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">zend_extension=opcache.so</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">opcache.</code><code class="bash functions">enable</code><code class="bash plain">=1</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">opcache.enable_cli=1</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        重启php-fpm</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_842170">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">kill</code> <code class="bash plain">-USR2 `</code><code class="bash functions">cat</code> <code class="bash plain">/usr/local/php/var/run/php-fpm</code><code class="bash plain">.pid</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        或者</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_39487">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">/usr/local/php/sbin/init</code><code class="bash plain">.d.php-fpm restart</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        再次测试,QPS上升到8000以上</p>
<p>
        开启HugePages</p>
<p>
        再次测试,QPS偶尔能彪上10000</p>
<p>
        <strong>安装YAF</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_838810">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">wget http:</code><code class="bash plain">//pecl</code><code class="bash plain">.php.net</code><code class="bash plain">/get/yaf-3</code><code class="bash plain">.0.2.tgz</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">tar</code> <code class="bash plain">-zvxf yaf-3.0.2.tgz</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        解压缩以后, 进入Yaf的源码目录, 依次执行(其中PHP_BIN是PHP的bin目录):</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_134966">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">/usr/local/php/bin/phpize</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        报错:</p>
<p>
        <span>Cannot find autoconf. Please check your autoconf installation and the<br>
        $PHP_AUTOCONF environment variable. Then, rerun this script.</span></p>
<p>
        解决办法:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_873189">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">m4</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">autoconf</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libpcre3 libpcre3-dev </code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        phpize执行后:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_790256">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">.</code><code class="bash plain">/configure</code> <code class="bash plain">--with-php-config=</code><code class="bash plain">/usr/local/php/bin/php-config</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">make</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">Installing shared extensions:   </code><code class="bash plain">/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装成功,修改php.ini,加入yaf扩展</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_402276">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">extension=yaf.so</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        重启php-fpm,查看phpinfo()</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" alt="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" src="https://zhuji.jb51.net/uploads/img/202305/7599719a16fbcec903643c8e0324abc4.jpg"></p>
<p>
        安装yaf成功</p>
<p>
        <strong>PS:使用PDO过程中,出现 SQLSTATE No such file or directory 错误</strong></p>
<p>
        经查,是mysql.sock找不到</p>
<p>
        在phpinfo()中,看到pdo_mysql.default_socket的值是/tmp/mysql.sock</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" alt="ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法" src="https://zhuji.jb51.net/uploads/img/202305/d010d1da7216e324f7e7e4bab23ce881.jpg"></p>
<p>
        但是在服务器上并没有这个文件</p>
<p>
        通过sudo service mysql status 命令</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_189268">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">* </code><code class="bash plain">/usr/bin/mysqladmin</code> <code class="bash plain">Ver 9.1 Distrib 10.0.23-MariaDB, </code><code class="bash keyword">for</code> <code class="bash plain">debian-linux-gnu on x86_64</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">Server version     10.0.23-MariaDB-1~trusty-log</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">Protocol version    10</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">Connection       Localhost via UNIX socket</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">UNIX socket       </code><code class="bash plain">/var/run/mysqld/mysqld</code><code class="bash plain">.sock</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">Uptime:         3 min 28 sec</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        找到sock文件的位置在/var/run/mysqld/mysqld.sock</p>
<p>
        于是在/tmp下 做个软链接</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_2216">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/var/run/mysqld/mysqld</code><code class="bash plain">.sock mysql.sock</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        问题解决</p>
<p>
        通过localhost无法访问到数据库,但是通过IP可以</p>
<p>
        分析:这是典型的socket没有正确设置的情况。</p>
<p>
        连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。</p>
<p>
        根据上面的sudo service mysql status命令</p>
<p>
        得到sock文件的位置在/var/run/mysqld/mysqld.sock</p>
<p>
        于是,修改php.ini</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_592415">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">pdo_mysql.default_socket=</code><code class="bash plain">/var/run/mysqld/mysqld</code><code class="bash plain">.sock</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        重启php-fpm</p>
<p>
        问题解决</p>
<p>
        希望本文所述对大家ubuntu服务器配置有所帮助。</p>
頁: [1]
查看完整版本: ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法