{"id":98,"date":"2017-06-30T05:15:37","date_gmt":"2017-06-30T05:15:37","guid":{"rendered":"https:\/\/oimi.me\/?p=98"},"modified":"2017-06-30T05:15:37","modified_gmt":"2017-06-30T05:15:37","slug":"debian-9-x-stretch-%e4%bd%bf%e7%94%a8%e5%ae%98%e6%96%b9%e6%89%93%e5%8c%85%e6%ba%90%e5%ae%89%e8%a3%85%e6%9c%80%e6%96%b0%e7%89%88%e6%9c%ac-lemp-lnmp","status":"publish","type":"post","link":"https:\/\/myya.net\/index.php\/2017\/06\/30\/debian-9-x-stretch-%e4%bd%bf%e7%94%a8%e5%ae%98%e6%96%b9%e6%89%93%e5%8c%85%e6%ba%90%e5%ae%89%e8%a3%85%e6%9c%80%e6%96%b0%e7%89%88%e6%9c%ac-lemp-lnmp\/","title":{"rendered":"Debian 9.x \u201cstretch\u201d \u4f7f\u7528\u5b98\u65b9\u6253\u5305\u6e90\u5b89\u88c5\u6700\u65b0\u7248\u672c LEMP \/ LNMP"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-102\" src=\"https:\/\/cdn.oimi.me\/wp-content\/uploads\/2017\/06\/2017063013163099.jpg\" alt=\"\" width=\"700\" height=\"394\" srcset=\"https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013163099.jpg 700w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013163099-300x169.jpg 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>Debian 9 \u4ee3\u53f7 <a href=\"https:\/\/www.debian.org\/releases\/stretch\/\">Stretch<\/a> \u5728 2017 \u5e74 6 \u6708 18 \u53f7\u6b63\u5f0f\u53d1\u5e03\uff0c\u7531\u4e8e\u662f\u6700\u65b0\u7684\u7cfb\u7edf\uff0c\u539f\u6765\u57fa\u4e8e Dotdeb \u5b89\u88c5\u6700\u65b0 LEMP \u7684\u6559\u7a0b\u5df2\u7ecf\u8fc7\u65f6\uff0c\u672c\u6587\u5c06\u4ecb\u7ecd\u4f7f\u7528\u5b98\u65b9\u6e90\u548c\u7b2c\u4e09\u65b9\u6e90\u5728 Debian 9.x Stretch \u5b89\u88c5\u6700\u65b0\u7248 LEMP \u7684\u6559\u7a0b\uff0c\u5e76\u4e14\u53ef\u4ee5\u81ea\u884c\u9009\u62e9 PHP \u7248\u672c\u3002<!--more--><\/p>\n<p><strong>PS\uff1a\u672c\u6587\u540c\u65f6\u9002\u7528\u4e8e Debian 8.x Jessie \u5982\u679c\u60a8\u7684\u670d\u52a1\u5546\u6682\u672a\u63d0\u4f9b Debian 9.x \u4e5f\u53ef\u4ee5\u51d1\u5408\u4e00\u7528<\/strong><\/p>\n<p>\u4ee5\u4e0b\u5b89\u88c5\u6b65\u9aa4\u90fd\u5728 <code>root<\/code> \u7528\u6237\u4e0b\u5b8c\u6210\uff0c\u8bf7\u81ea\u884c\u4f7f\u7528 <code>su<\/code> \u547d\u4ee4\u5207\u6362\u5230 <code>root<\/code>\u7528\u6237<\/p>\n<h2 id=\"1\"><span id=\"h-1\"><\/span>1\u3001\u66f4\u65b0\u7cfb\u7edf\u5e76\u5b89\u88c5\u90e8\u5206\u5fc5\u8981\u8f6f\u4ef6<\/h2>\n<pre class=\"hljs sql\"><code class=\"language-bash\">apt-get <span class=\"hljs-keyword\">update<\/span> &amp;&amp; apt-<span class=\"hljs-keyword\">get<\/span> <span class=\"hljs-keyword\">upgrade<\/span>  \napt-<span class=\"hljs-keyword\">get<\/span> <span class=\"hljs-keyword\">install<\/span> curl vim wget sudo unzip apt-transport-https lsb-<span class=\"hljs-keyword\">release<\/span> ca-certificates  \n<\/code><\/pre>\n<p>\u7531\u4e8e Debian 9.x \u521a\u53d1\u5e03\uff0c <a href=\"https:\/\/backports.debian.org\/\">Backports<\/a>\u76ee\u524d\u8fd8\u6ca1\u6709\u8f6f\u4ef6\uff0c\u5982\u6709\u540e\u7eed\u5347\u7ea7\u7684\u5fc5\u8981\uff0c\u4e5f\u53ef\u4ee5\u52a0\u5165 Backports \u6e90\uff0c\u65b9\u4fbf\u672a\u6765\u5347\u7ea7<\/p>\n<pre class=\"hljs ruby\"><code class=\"language-bash\">cat <span class=\"hljs-meta\">&gt;&gt; <\/span>\/etc\/apt\/sources.list.d\/backports.list &lt;&lt; EOF  \ndeb <span class=\"hljs-symbol\">http:<\/span>\/<span class=\"hljs-regexp\">\/ftp.debian.org\/debian<\/span> $(lsb_release -sc)-backports main  \nEOF  \n<\/code><\/pre>\n<p>\u540e\u7eed\u7b49 Backports \u9646\u7eed\u6709\u65b0\u7248\u672c\u7684\u8f6f\u4ef6\u540e\uff0c\u4e5f\u53ef\u4ee5\u6267\u884c\u5347\u7ea7<\/p>\n<pre class=\"hljs sql\"><code class=\"language-bash\">apt-get -t stretch-backports <span class=\"hljs-keyword\">update<\/span> &amp;&amp; apt-<span class=\"hljs-keyword\">get<\/span> -t stretch-backports <span class=\"hljs-keyword\">upgrade<\/span>  \n<\/code><\/pre>\n<p>\u5f53\u7136\u73b0\u5728\u6682\u65f6\u6ca1\u5fc5\u8981\uff0c\u5426\u5219\u4f1a\u63d0\u793a<\/p>\n<pre class=\"hljs coffeescript\"><code class=\"language-bash\">E: The value <span class=\"hljs-string\">'stretch-backports'<\/span> <span class=\"hljs-keyword\">is<\/span> invalid <span class=\"hljs-keyword\">for<\/span> APT::Default-Release <span class=\"hljs-keyword\">as<\/span> such a release <span class=\"hljs-keyword\">is<\/span> <span class=\"hljs-keyword\">not<\/span> available <span class=\"hljs-keyword\">in<\/span> the sources  \n<\/code><\/pre>\n<h2 id=\"2nginx\"><span id=\"h-2nginx\"><\/span>2\u3001\u589e\u52a0 Nginx \u5b98\u65b9\u6e90\u5e76\u5b89\u88c5<\/h2>\n<p>\u7531\u4e8e Debian \u5b98\u65b9\u6253\u5305\u7ec4\u5728 2 \u6708\u4efd\u5c31\u5df2\u7ecf\u622a\u6b62\u6253\u5305\u6240\u6709\u8f6f\u4ef6\uff0c\u6240\u4ee5 Nginx \u5728<a href=\"https:\/\/packages.debian.org\/stretch\/nginx\">\u5b98\u65b9\u6e90<\/a>\u91cc\u4e00\u76f4\u505c\u7559\u5728 <a href=\"http:\/\/nginx.org\/en\/CHANGES-1.10\">1.10.3<\/a> \u800c <a href=\"http:\/\/nginx.org\/en\/CHANGES-1.12\">1.12.0<\/a> \u5df2\u7ecf\u53d1\u5e03\u4e24\u4e2a\u6708\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 Nginx \u5b98\u65b9\u7684\u6e90\u8fdb\u884c\u5b89\u88c5<\/p>\n<p>\u6309\u7167 Nginx \u5b98\u7f51\u7684<a href=\"http:\/\/nginx.org\/en\/linux_packages.html#stable\">\u8bf4\u660e<\/a><\/p>\n<h3 id=\"21key\"><span id=\"h-21key\"><\/span>2.1 \u9996\u5148\u589e\u52a0 Key<\/h3>\n<pre class=\"hljs cs\"><code class=\"language-bash\">wget http:<span class=\"hljs-comment\">\/\/nginx.org\/keys\/nginx_signing.key  <\/span>\napt-key <span class=\"hljs-keyword\">add<\/span> nginx_signing.key  \n<\/code><\/pre>\n<h3 id=\"22nginx\"><span id=\"h-22nginx\"><\/span>2.2 \u7136\u540e\u589e\u52a0 Nginx \u5b98\u65b9\u6e90<\/h3>\n<pre class=\"hljs ruby\"><code class=\"language-bash\">cat <span class=\"hljs-meta\">&gt;&gt; <\/span>\/etc\/apt\/sources.list.d\/nginx.list &lt;&lt; EOF  \ndeb <span class=\"hljs-symbol\">http:<\/span>\/<span class=\"hljs-regexp\">\/nginx.org\/packages<\/span><span class=\"hljs-regexp\">\/debian\/<\/span> $(lsb_release -sc) nginx  \ndeb-src <span class=\"hljs-symbol\">http:<\/span>\/<span class=\"hljs-regexp\">\/nginx.org\/packages<\/span><span class=\"hljs-regexp\">\/debian\/<\/span> $(lsb_release -sc) nginx  \nEOF  \n<\/code><\/pre>\n<h3 id=\"23nginx\"><span id=\"h-23nginx\"><\/span>2.3 \u63a5\u7740\u66f4\u65b0\u5e76\u63a5\u5b89\u88c5 Nginx<\/h3>\n<pre class=\"hljs sql\"><code class=\"language-bash\">apt-get <span class=\"hljs-keyword\">update<\/span>  \napt-<span class=\"hljs-keyword\">get<\/span> <span class=\"hljs-keyword\">install<\/span> nginx  \n<\/code><\/pre>\n<p>\u6ce8\u610f\uff1a\u4e0d\u8981\u5b89\u88c5 <code>nginx-extras<\/code> \u8fd9\u4e2a\u5305\u662f Debian \u5b98\u65b9\u6253\u5305\u7684\uff0c\u800c\u4e0d\u662f Nginx \u5b98\u65b9\u6253\u5305\u3002<\/p>\n<p>\u5b89\u88c5\u5b8c\u6bd5\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 <code>nginx -v<\/code> \u547d\u4ee4\u770b\u5230 Nginx \u5df2\u7ecf\u662f\u6700\u65b0\u7684 1.12.0 \u7a33\u5b9a\u7248\u4e86<\/p>\n<pre class=\"hljs coffeescript\"><code class=\"language-bash\">root@debian9 ~ <span class=\"hljs-comment\"># nginx -v  <\/span>\nnginx version: nginx\/<span class=\"hljs-number\">1.12<\/span><span class=\"hljs-number\">.0<\/span>  \n<\/code><\/pre>\n<h2 id=\"3nginx\"><span id=\"h-3nginx\"><\/span>3\u3001\u4fee\u6539 Nginx \u914d\u7f6e<\/h2>\n<p>\u7531\u4e8e Nginx \u5b98\u65b9\u6253\u5305\u7684\u6e90\u57fa\u672c\u53ea\u662f\u4e2a\u6700\u5c0f\u5316 Nginx\uff0c\u6240\u4ee5\u6211\u4eec\u6709\u5fc5\u8981\u9488\u5bf9\u6027\u4fee\u6539\uff0c\u9996\u5148\uff0c\u53ef\u4ee5\u4fee\u6539 <code>\/etc\/nginx\/nginx.conf<\/code> \uff0c\u53c2\u8003\u5185\u5bb9\u5982\u4e0b<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-nginx\"><span class=\"hljs-attribute\">user<\/span> www-data;  \n<span class=\"hljs-attribute\">worker_processes<\/span> auto;  \n<span class=\"hljs-attribute\">pid<\/span> \/run\/nginx.pid;\n\n<span class=\"hljs-section\">events<\/span> {  \n    <span class=\"hljs-attribute\">worker_connections<\/span> <span class=\"hljs-number\">768<\/span>;\n    <span class=\"hljs-comment\"># multi_accept on;<\/span>\n}\n\n<span class=\"hljs-section\">http<\/span> {\n\n    <span class=\"hljs-comment\">##<\/span>\n    <span class=\"hljs-comment\"># Basic Settings<\/span>\n    <span class=\"hljs-comment\">##<\/span>\n\n    <span class=\"hljs-attribute\">sendfile<\/span> <span class=\"hljs-literal\">on<\/span>;\n    <span class=\"hljs-attribute\">tcp_nopush<\/span> <span class=\"hljs-literal\">on<\/span>;\n    <span class=\"hljs-attribute\">tcp_nodelay<\/span> <span class=\"hljs-literal\">on<\/span>;\n    <span class=\"hljs-attribute\">keepalive_timeout<\/span> <span class=\"hljs-number\">65<\/span>;\n    <span class=\"hljs-attribute\">types_hash_max_size<\/span> <span class=\"hljs-number\">2048<\/span>;\n    <span class=\"hljs-attribute\">server_tokens<\/span> <span class=\"hljs-literal\">off<\/span>;\n\n    <span class=\"hljs-comment\"># server_names_hash_bucket_size 64;<\/span>\n    <span class=\"hljs-comment\"># server_name_in_redirect off;<\/span>\n\n    <span class=\"hljs-attribute\">include<\/span> \/etc\/nginx\/mime.types;\n    <span class=\"hljs-attribute\">default_type<\/span> application\/octet-stream;\n\n    <span class=\"hljs-comment\">##<\/span>\n    <span class=\"hljs-comment\"># Logging Settings<\/span>\n    <span class=\"hljs-comment\">##<\/span>\n\n    <span class=\"hljs-attribute\">access_log<\/span> \/var\/log\/nginx\/access.log;\n    <span class=\"hljs-attribute\">error_log<\/span> \/var\/log\/nginx\/error.log;\n\n    <span class=\"hljs-comment\">##<\/span>\n    <span class=\"hljs-comment\"># Gzip Settings<\/span>\n    <span class=\"hljs-comment\">##<\/span>\n\n    <span class=\"hljs-attribute\">gzip<\/span> <span class=\"hljs-literal\">on<\/span>;\n    <span class=\"hljs-attribute\">gzip_disable<\/span> <span class=\"hljs-string\">\"msie6\"<\/span>;\n\n    <span class=\"hljs-attribute\">gzip_vary<\/span> <span class=\"hljs-literal\">on<\/span>;\n    <span class=\"hljs-attribute\">gzip_proxied<\/span> any;\n    <span class=\"hljs-attribute\">gzip_comp_level<\/span> <span class=\"hljs-number\">6<\/span>;\n    <span class=\"hljs-attribute\">gzip_buffers<\/span> <span class=\"hljs-number\">16<\/span> <span class=\"hljs-number\">8k<\/span>;\n    <span class=\"hljs-attribute\">gzip_http_version<\/span> <span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-attribute\">gzip_types<\/span> text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\n\n    <span class=\"hljs-comment\">##<\/span>\n    <span class=\"hljs-comment\"># Virtual Host Configs<\/span>\n    <span class=\"hljs-comment\">##<\/span>\n\n    <span class=\"hljs-attribute\">include<\/span> \/etc\/nginx\/conf.d\/<span class=\"hljs-regexp\">*.conf<\/span>;\n    <span class=\"hljs-attribute\">include<\/span> \/etc\/nginx\/sites-enabled\/*;\n}\n<\/code><\/pre>\n<p>\u5220\u9664\u9ed8\u8ba4\u7684 <code>default.conf<\/code><\/p>\n<pre class=\"hljs coffeescript\"><code class=\"language-bash\">rm -rf \/etc\/nginx\/conf.d\/<span class=\"hljs-keyword\">default<\/span>.conf  \n<\/code><\/pre>\n<p>\u65b0\u5efa\u7acb\u4e00\u4e2a <code>sites-enabled<\/code> \u76ee\u5f55\u7528\u6765\u5b58\u653e\u7f51\u7ad9\u914d\u7f6e<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">mkdir<\/span> -p \/etc\/nginx\/sites-enabled  \n<\/code><\/pre>\n<p>\u4e3a\u4e86\u907f\u514d\u6240\u6709\u7f51\u7ad9\u6587\u4ef6\u90fd\u4f7f\u7528\u4e00\u5806\u91cd\u590d\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u53c2\u8003 Debian \u7684 Nginx <a href=\"https:\/\/packages.debian.org\/stretch\/nginx\">\u914d\u7f6e<\/a>\uff0c\u628a\u4e00\u4e9b PHP \u914d\u7f6e\u6587\u4ef6\u5355\u72ec\u63d0\u53d6\u51fa\u6765<\/p>\n<p>\u65b0\u5efa <code>\/etc\/nginx\/fastcgi.conf<\/code> \u5185\u5bb9\u5982\u4e0b<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-nginx\"><span class=\"hljs-attribute\">fastcgi_param<\/span>  SCRIPT_FILENAME    <span class=\"hljs-variable\">$document_root<\/span><span class=\"hljs-variable\">$fastcgi_script_name<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  QUERY_STRING       <span class=\"hljs-variable\">$query_string<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REQUEST_METHOD     <span class=\"hljs-variable\">$request_method<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  CONTENT_TYPE       <span class=\"hljs-variable\">$content_type<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  CONTENT_LENGTH     <span class=\"hljs-variable\">$content_length<\/span>;\n\n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SCRIPT_NAME        <span class=\"hljs-variable\">$fastcgi_script_name<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REQUEST_URI        <span class=\"hljs-variable\">$request_uri<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  DOCUMENT_URI       <span class=\"hljs-variable\">$document_uri<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  DOCUMENT_ROOT      <span class=\"hljs-variable\">$document_root<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SERVER_PROTOCOL    <span class=\"hljs-variable\">$server_protocol<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REQUEST_SCHEME     <span class=\"hljs-variable\">$scheme<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  HTTPS              <span class=\"hljs-variable\">$https<\/span> if_not_empty;\n\n<span class=\"hljs-attribute\">fastcgi_param<\/span>  GATEWAY_INTERFACE  CGI\/<span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">1<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SERVER_SOFTWARE    nginx\/<span class=\"hljs-variable\">$nginx_version<\/span>;\n\n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REMOTE_ADDR        <span class=\"hljs-variable\">$remote_addr<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REMOTE_PORT        <span class=\"hljs-variable\">$remote_port<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SERVER_ADDR        <span class=\"hljs-variable\">$server_addr<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SERVER_PORT        <span class=\"hljs-variable\">$server_port<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span>  SERVER_NAME        <span class=\"hljs-variable\">$server_name<\/span>;\n\n<span class=\"hljs-comment\"># PHP only, required if PHP was built with --enable-force-cgi-redirect<\/span>\n<span class=\"hljs-attribute\">fastcgi_param<\/span>  REDIRECT_STATUS    <span class=\"hljs-number\">200<\/span>;  \n<\/code><\/pre>\n<p>\u5176\u5b9e\u8fd9\u4e2a\u6587\u4ef6\u548c <code>\/etc\/nginx\/fastcgi_params<\/code> \u7684\u533a\u522b\u5c31\u662f\u7b2c\u4e00\u884c\u589e\u52a0\u4e86<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-nginx\"><span class=\"hljs-attribute\">fastcgi_param<\/span>  SCRIPT_FILENAME    <span class=\"hljs-variable\">$document_root<\/span><span class=\"hljs-variable\">$fastcgi_script_name<\/span>;  \n<\/code><\/pre>\n<p>\u5982\u679c\u6ca1\u6709\u8fd9\u884c\u4ee3\u7801\uff0c\u90a3\u4e48 <a href=\"https:\/\/php-fpm.org\/\">PHP-FPM<\/a> (FastCGI Process Manager) \u5c31\u6ca1\u6cd5\u6267\u884c\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\uff0c\u4ece\u800c\u9020\u6210 502 \u9519\u8bef<\/p>\n<p>\u7136\u540e\u65b0\u5efa\u7acb\u4e2a <code>snippets<\/code> \u76ee\u5f55<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">mkdir<\/span> -p \/etc\/nginx\/snippets  \n<\/code><\/pre>\n<p>\u589e\u52a0\u4e00\u4e2a <code>\/etc\/nginx\/snippets\/fastcgi-php.conf<\/code> \u5185\u5bb9\u5982\u4e0b<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-nginx\"><span class=\"hljs-comment\"># regex to split $uri to $fastcgi_script_name and $fastcgi_path<\/span>\n<span class=\"hljs-attribute\">fastcgi_split_path_info<\/span><span class=\"hljs-regexp\"> ^(.+\\.php)(\/.+)$<\/span>;\n\n<span class=\"hljs-comment\"># Check that the PHP script exists before passing it<\/span>\n<span class=\"hljs-attribute\">try_files<\/span> <span class=\"hljs-variable\">$fastcgi_script_name<\/span> =<span class=\"hljs-number\">404<\/span>;\n\n<span class=\"hljs-comment\"># Bypass the fact that try_files resets $fastcgi_path_info<\/span>\n<span class=\"hljs-comment\"># see: http:\/\/trac.nginx.org\/nginx\/ticket\/321<\/span>\n<span class=\"hljs-attribute\">set<\/span> <span class=\"hljs-variable\">$path_info<\/span> <span class=\"hljs-variable\">$fastcgi_path_info<\/span>;  \n<span class=\"hljs-attribute\">fastcgi_param<\/span> PATH_INFO <span class=\"hljs-variable\">$path_info<\/span>;\n\n<span class=\"hljs-attribute\">fastcgi_index<\/span> index.php;  \n<span class=\"hljs-attribute\">include<\/span> fastcgi.conf;  \n<\/code><\/pre>\n<p>\u6d4b\u8bd5 Nginx \u914d\u7f6e\u6587\u4ef6\u8bed\u6cd5\u662f\u5426\u6b63\u786e<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">nginx<\/span> -t  \n<\/code><\/pre>\n<p>\u5982\u679c\u6ca1\u6709\u95ee\u9898\uff0c\u5219\u8f93\u51fa\u5982\u4e0b<\/p>\n<pre class=\"hljs coffeescript\"><code class=\"language-bash\">root@debian9 ~ <span class=\"hljs-comment\"># nginx -t  <\/span>\nnginx: the configuration file \/etc\/nginx\/nginx.conf syntax <span class=\"hljs-keyword\">is<\/span> ok  \nnginx: configuration file \/etc\/nginx\/nginx.conf test <span class=\"hljs-keyword\">is<\/span> successful  \n<\/code><\/pre>\n<p>\u5982\u679c\u5c0f\u4f19\u4f34\u4eec\u5bf9\u8fd9\u4e2a\u6b65\u9aa4\u89c9\u5f97\u9ebb\u70e6\uff0c\u90a3\u4e48\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u6211\u6309\u7167 Debian \u5b98\u65b9\u6e90\u7684\u914d\u7f6e\u6587\u4ef6\u5bf9\u6bd4 Nginx \u5b98\u65b9\u6e90\u7684\u914d\u7f6e\u6587\u4ef6\u4fee\u6539\u597d\u7684 <code>\/etc\/nginx<\/code> \u76ee\u5f55\uff0c\u55ef\uff0c\u4ec5\u9002\u5408\u65b0\u5f00\u7684\u673a\u5668\u54e6\uff0c\u4f7f\u7528\u524d\u8bf7\u5148\u505a\u597d\u5907\u4efd\uff0c\u5426\u5219\u540e\u679c\u81ea\u8d1f<\/p>\n<pre class=\"hljs bash\"><code class=\"language-bash\">rm -rf \/etc\/nginx\/* &amp;&amp; <span class=\"hljs-built_in\">cd<\/span> \/etc\/nginx &amp;&amp; wget <span class=\"hljs-string\">\"https:\/\/sb.sb.sb\/nginx\/nginx-conf-latest.zip\"<\/span> &amp;&amp; unzip nginx-conf-latest.zip &amp;&amp; install -o www-data -g www-data <span class=\"hljs-_\">-d<\/span> \/var\/www  \n<\/code><\/pre>\n<p>\u7136\u540e\u5c31\u53ef\u4ee5\u7ee7\u7eed\u5f80\u4e0b\u770b\u4e86<\/p>\n<h2 id=\"4ondejsurphpphp7x\"><span id=\"h-4ondejsurphpphp7x\"><\/span>4\u3001\u589e\u52a0 Ond\u0159ej Sur\u00fd \u5927\u795e\u6253\u5305\u7684 PHP \u6e90\u5e76\u5b89\u88c5 PHP 7.x<\/h2>\n<p><a href=\"https:\/\/deb.sury.org\/\">Ond\u0159ej Sur\u00fd<\/a> \u662f\u4e00\u4e2a\u6765\u81ea\u6377\u514b\u7684\u5927\u4f6c\uff0cUbuntu \u7684 <a href=\"https:\/\/launchpad.net\/~ondrej\/+archive\/ubuntu\/php\">PPA for PHP<\/a> \u5c31\u662f\u8fd9\u4f4d\u5927\u4f6c\u505a\u7684\uff0c\u5f53\u7136\u5c11\u4e0d\u4e86 Debian \u7684\u6e90\u4e86\uff0c\u4e0b\u9762\u4e00\u6b65\u4e00\u6b65\u6765<\/p>\n<h3 id=\"41pgp\"><span id=\"h-41pgp\"><\/span>4.1 \u589e\u52a0\u5927\u795e\u7684 PGP<\/h3>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">wget<\/span> -O \/etc\/apt\/trusted.gpg.d\/php.gpg https:\/\/packages.sury.org\/php\/apt.gpg  \n<\/code><\/pre>\n<h3 id=\"42\"><span id=\"h-42\"><\/span>4.2 \u52a0\u5165\u5927\u795e\u505a\u597d\u7684\u6e90<\/h3>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">sh<\/span> -c <span class=\"hljs-string\">'echo \"deb https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main\" &gt; \/etc\/apt\/sources.list.d\/php.list'<\/span>  \n<\/code><\/pre>\n<h3 id=\"43\"><span id=\"h-43\"><\/span>4.3 \u66f4\u65b0\u7cfb\u7edf<\/h3>\n<pre class=\"hljs cs\"><code class=\"language-bash\">apt-<span class=\"hljs-keyword\">get<\/span> update  \n<\/code><\/pre>\n<h3 id=\"44php\"><span id=\"h-44php\"><\/span>4.4 \u5b89\u88c5\u81ea\u5df1\u9700\u8981\u7684 PHP \u7248\u672c<\/h3>\n<p>\u8fd9\u4e2a\u6e90\u76ee\u524d\u9ed8\u8ba4\u7684 PHP \u662f 7.1.x \uff0c\u5982\u679c\u60a8\u9700\u8981 7.0.x \u6216\u8005 5.6.x \u90a3\u4e48\u8bf7\u4fee\u6539\u5bf9\u5e94\u7684 PHP \u7248\u672c\u53f7\uff08\u6ce8\u610f\u914d\u7f6e\u6587\u4ef6\u54e6\uff09<\/p>\n<p>\u8fd9\u91cc\u4e3e\u4f8b WordPress \u9700\u8981\u7684\u90e8\u5206 PHP \u5305<\/p>\n<pre class=\"hljs css\"><code class=\"language-bash\"><span class=\"hljs-selector-tag\">apt-get<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-fpm<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-mysql<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-curl<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-gd<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-mbstring<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-mcrypt<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-xml<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-xmlrpc<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-zip<\/span>  \n<\/code><\/pre>\n<p>\u5bf9\u5e94 PHP 7.0.x \u5c31\u662f<\/p>\n<pre class=\"hljs css\"><code class=\"language-bash\"><span class=\"hljs-selector-tag\">apt-get<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-fpm<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-mysql<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-curl<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-gd<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-mbstring<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-mcrypt<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-xml<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-xmlrpc<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-zip<\/span>  \n<\/code><\/pre>\n<p>\u4fee\u6539 <code>php.ini<\/code> \u9632\u6b62\u8de8\u76ee\u5f55\u653b\u51fb\uff0c\u5982\u679c\u5b89\u88c5\u7684 PHP 7.0.x \u8bf7\u76f8\u5e94\u4fee\u6539 <code>\/etc\/php\/7.0\/fpm\/php.ini<\/code><\/p>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">sed<\/span> -i <span class=\"hljs-string\">'s\/;cgi.fix_pathinfo=1\/cgi.fix_pathinfo=0\/'<\/span> \/etc\/php\/<span class=\"hljs-number\">7<\/span>.<span class=\"hljs-number\">1<\/span>\/fpm\/php.ini  \n<\/code><\/pre>\n<h3 id=\"45phpnginx\"><span id=\"h-45phpnginx\"><\/span>4.5 \u91cd\u542f PHP \u548c Nginx<\/h3>\n<pre class=\"hljs css\"><code class=\"language-bash\"><span class=\"hljs-selector-tag\">systemctl<\/span> <span class=\"hljs-selector-tag\">restart<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.1-fpm<\/span>  \n<\/code><\/pre>\n<p>\u5bf9\u5e94 PHP 7.0.x \u547d\u4ee4\u5982\u4e0b<\/p>\n<pre class=\"hljs css\"><code class=\"language-bash\"><span class=\"hljs-selector-tag\">systemctl<\/span> <span class=\"hljs-selector-tag\">restart<\/span> <span class=\"hljs-selector-tag\">php7<\/span><span class=\"hljs-selector-class\">.0-fpm<\/span>  \n<\/code><\/pre>\n<p>Nginx \u53c2\u8003\u914d\u7f6e\u6587\u4ef6\u5982\u4e0b\uff0c\u65b0\u5efa\u7acb\u4e2a <code>\/etc\/nginx\/sites-enabled\/example.com.conf<\/code> \u6216\u76f4\u63a5\u4ece\u672c\u7ad9\u63d0\u4f9b\u7684<a href=\"https:\/\/sb.sb.sb\/nginx\/nginx-conf-latest.zip\">\u914d\u7f6e\u6587\u4ef6<\/a> <code>\/etc\/nginx\/sites-available\/default-example-php-fpm-7.1.conf<\/code> \u53c2\u8003\u4fee\u6539<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-nginx\"><span class=\"hljs-section\">server<\/span> {  \n        <span class=\"hljs-attribute\">listen<\/span> <span class=\"hljs-number\">80<\/span>;\n        <span class=\"hljs-attribute\">listen<\/span> [::]:<span class=\"hljs-number\">80<\/span>;\n\n<span class=\"hljs-comment\"># \u6307\u5b9a\u7f51\u7ad9\u76ee\u5f55\uff0c\u53ef\u6839\u636e\u81ea\u5df1\u60c5\u51b5\u66f4\u6362\uff0c\u5efa\u8bae\u653e\u5728 \/var\/www \u76ee\u5f55\u4e0b<\/span>\n        <span class=\"hljs-attribute\">root<\/span> \/var\/www\/example.com;\n        <span class=\"hljs-attribute\">index<\/span> index.php index.html index.htm;\n\n<span class=\"hljs-comment\"># \u9ed8\u8ba4\u7b2c\u4e00\u4e2a\u57df\u540d\uff0c\u66ff\u6362 example.com \u4e3a\u60a8\u7684\u57df\u540d<\/span>\n        <span class=\"hljs-attribute\">server_name<\/span> example.com;\n\n        <span class=\"hljs-attribute\">location<\/span> \/ {\n            <span class=\"hljs-attribute\">try_files<\/span> <span class=\"hljs-variable\">$uri<\/span> <span class=\"hljs-variable\">$uri<\/span>\/ =<span class=\"hljs-number\">404<\/span>;\n        }\n\n<span class=\"hljs-comment\"># \u5f00\u542f PHP7.1-fpm \u6a21\u5f0f\uff0c\u5982\u9700\u8981\u5b89\u88c5 PHP 7.0.x \u8bf7\u4fee\u6539\u4e3a fastcgi_pass unix:\/run\/php\/php7.0-fpm.sock;<\/span>\n        <span class=\"hljs-attribute\">location<\/span> <span class=\"hljs-regexp\">~ \\.php$<\/span> {\n            <span class=\"hljs-attribute\">include<\/span> snippets\/fastcgi-php.conf;\n            <span class=\"hljs-attribute\">fastcgi_pass<\/span> unix:\/run\/php\/php7.1-fpm.sock;\n        }\n}\n<\/code><\/pre>\n<p>\u5230\u8fd9\u91cc\u57fa\u672c\u6ca1\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u76f4\u63a5\u91cd\u542f Nginx<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">systemctl<\/span> restart nginx  \n<\/code><\/pre>\n<p>\u6211\u4eec\u7684\u76ee\u5f55\u5728 <code>\/var\/www\/example.com<\/code>\uff0c \u521b\u5efa\u4e00\u4e2a <code>phpinfo.php<\/code> \u5e76\u8f93\u5165 <code>phpinfo()<\/code> \u51fd\u6570<\/p>\n<pre class=\"hljs php\"><code class=\"language-bash\">cat &gt;&gt; \/<span class=\"hljs-keyword\">var<\/span>\/www\/example.com\/phpinfo.php &lt;&lt; EOF  \n<span class=\"hljs-meta\">&lt;?php<\/span> phpinfo(); <span class=\"hljs-meta\">?&gt;<\/span>  \nEOF  \n<\/code><\/pre>\n<p>\u597d\u4e86\uff0c\u6b64\u65f6\u5728\u6d4f\u89c8\u5668\u8f93\u5165 <code>http:\/\/example.com\/phpinfo.php<\/code>\uff0c\u5982\u679c\u770b\u5230\u7ecf\u5178\u7684 <code>phpinfo<\/code> \u9875\u9762\u5219\u8bf4\u660e\u5b89\u88c5\u6210\u529f\uff0c\u5982\u679c\u4e0d\u6210\u529f\uff0c\u8bf7\u4ed4\u7ec6\u5bf9\u6bd4\u6b65\u9aa4\u67e5\u627e\u54ea\u91cc\u51fa\u9519\u6216\u5728\u70e7\u997c\u535a\u5ba2\u4e0b\u65b9\u7559\u8a00<\/p>\n<p>\u6548\u679c\u5982\u4e0b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-99\" src=\"https:\/\/cdn.oimi.me\/wp-content\/uploads\/2017\/06\/2017063013112561.png\" alt=\"\" width=\"1663\" height=\"1061\" srcset=\"https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013112561.png 1663w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013112561-300x191.png 300w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013112561-1024x653.png 1024w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013112561-768x490.png 768w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013112561-1536x980.png 1536w\" sizes=\"auto, (max-width: 1663px) 100vw, 1663px\" \/><\/p>\n<h2 id=\"5mysql57x\">5\u3001\u5b89\u88c5 MySQL 5.7.x<\/h2>\n<p>\u7531\u4e8e\u4e4b\u524d\u4e00\u76f4\u63a8\u8350\u7684 <a href=\"https:\/\/www.percona.com\/downloads\/Percona-Server-LATEST\/\">Percona Server<\/a> \u6682\u672a\u53d1\u5e03 Debian 9.x Stretch \u7248\u672c\uff0c\u800c Debian 9.x Stretch \u9ed8\u8ba4<a href=\"https:\/\/mariadb.com\/resources\/blog\/mariadb-server-default-debian-9\">\u5df2\u7ecf\u4f7f\u7528<\/a> Mariadb \uff0c\u6240\u4ee5\u8fd9\u91cc\u6211\u4eec\u7528 MySQL \u5b98\u65b9\u6e90\u8fdb\u884c\u5b89\u88c5<\/p>\n<h3 id=\"51mysql\"><span id=\"h-51mysql\"><\/span>5.1 \u9996\u5148\uff0c\u5bfc\u5165 MySQL \u7684\u5b98\u65b9\u6e90<\/h3>\n<pre class=\"hljs nginx\"><code class=\"language-bash\"><span class=\"hljs-attribute\">wget<\/span> https:\/\/repo.mysql.com\/mysql-apt-config_0.8.6-1_all.deb  \ndpkg -i mysql-apt-config_0.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">6<\/span>-1_all.deb  \n<\/code><\/pre>\n<p>\u5f39\u51fa\u7684\u754c\u9762\u91cc\u76f4\u63a5\u9009\u62e9 <code>MySQL Server &amp; Cluster (Currently selected: mysql-5.7<\/code> \u5e76\u6309 <kbd>tab<\/kbd> \u9009\u62e9 OK \u7136\u540e\u56de\u8f66\uff0c\u7248\u672c\u9009\u62e9 <code>mysql-5.7<\/code> \u5e76\u6309 <kbd>tab<\/kbd> \u9009\u62e9 ok \u5e76\u56de\u8f66\uff0c\u63a5\u7740\u518d\u6309 <kbd>tab<\/kbd> \u9009\u62e9 OK \u7136\u540e\u56de\u8f66\u5373\u53ef\uff0c\u5982\u56fe<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-100\" src=\"https:\/\/cdn.oimi.me\/wp-content\/uploads\/2017\/06\/2017063013122227.png\" alt=\"\" width=\"1440\" height=\"336\" srcset=\"https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013122227.png 1440w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013122227-300x70.png 300w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013122227-1024x239.png 1024w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013122227-768x179.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-101\" src=\"https:\/\/cdn.oimi.me\/wp-content\/uploads\/2017\/06\/2017063013123460.png\" alt=\"\" width=\"1982\" height=\"1042\" srcset=\"https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013123460.png 1982w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013123460-300x158.png 300w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013123460-1024x538.png 1024w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013123460-768x404.png 768w, https:\/\/myya.net\/wp-content\/uploads\/2017\/06\/2017063013123460-1536x808.png 1536w\" sizes=\"auto, (max-width: 1982px) 100vw, 1982px\" \/><\/p>\n<div class=\"content-post-body\">\n<h3 id=\"52\">5.2 \u63a5\u7740\u66f4\u65b0\u4e00\u4e0b\u7cfb\u7edf<\/h3>\n<pre class=\"hljs cs\"><code class=\"language-bash\">apt-<span class=\"hljs-keyword\">get<\/span> update  \n<\/code><\/pre>\n<h3 id=\"53mysql57x\"><span id=\"h-53mysql57x\"><\/span>5.3 \u7136\u540e\u76f4\u63a5\u5b89\u88c5\u6700\u65b0\u7248 MySQL 5.7.x<\/h3>\n<pre class=\"hljs sql\"><code class=\"language-bash\">apt-get <span class=\"hljs-keyword\">install<\/span> mysql-<span class=\"hljs-keyword\">server<\/span>  \n<\/code><\/pre>\n<p>\u5728\u5f39\u51fa\u7684\u754c\u9762\u91cc\u8f93\u5165\u4e24\u6b21\u968f\u673a\u5e76\u4e14\u5f3a\u5927\u7684 MySQL root \u5bc6\u7801\u5373\u53ef\uff0c\u5b89\u88c5\u6210\u529f\u540e\u68c0\u67e5\u4e00\u4e0b\u7248\u672c<\/p>\n<pre class=\"hljs coffeescript\"><code class=\"language-bash\">root@debian9 ~ <span class=\"hljs-comment\"># mysql -V  <\/span>\nmysql  Ver <span class=\"hljs-number\">14.14<\/span> Distrib <span class=\"hljs-number\">5.7<\/span><span class=\"hljs-number\">.18<\/span>, <span class=\"hljs-keyword\">for<\/span> Linux (x86_64) using  EditLine wrapper  \n<\/code><\/pre>\n<p>\u5b89\u88c5\u5b8c\u6bd5\u540e\u5f3a\u70c8\u63a8\u8350\u4f7f\u7528 <code>mysql_secure_installation<\/code> \u547d\u4ee4\u505a\u4e00\u6b21\u5b89\u5168\u8bbe\u7f6e\uff0c\u8be6\u89c1 <a href=\"https:\/\/sb.sb\/ubuntu-server-16-04-install-nginx-php-mysql\/#h-mysql57x\">Ubuntu Server 16.04.x (Xenial Xerus) \u5b89\u88c5 LEMP \/ LNMP \u6559\u7a0b<\/a> \u91cc\u9762\u7684\u8bf4\u660e\uff0c\u540c\u6837\u5176\u4ed6\u7684\u914d\u7f6e\u90fd\u662f\u4e00\u6837\u7684<\/p>\n<h3 id=\"54\"><span id=\"h-54\"><\/span>5.4 \u521b\u5efa\u6570\u636e\u5e93\u5e76\u6d4b\u8bd5<\/h3>\n<p>\u4f7f\u7528 MySQL root \u7528\u6237\u767b\u9646<\/p>\n<pre class=\"hljs nginx\"><code class=\"language-mysql\"><span class=\"hljs-attribute\">mysql<\/span> -u root -p  \n<\/code><\/pre>\n<p>\u521b\u5efa\u6570\u636e\u5e93 <code>example_database<\/code><\/p>\n<pre class=\"hljs sql\"><code class=\"language-mysql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">DATABASE<\/span> example_database <span class=\"hljs-keyword\">DEFAULT<\/span> <span class=\"hljs-built_in\">CHARACTER<\/span> <span class=\"hljs-keyword\">SET<\/span> utf8mb4 <span class=\"hljs-keyword\">COLLATE<\/span> utf8mb4_unicode_ci;  \n<\/code><\/pre>\n<p>\u521b\u5efa\u7528\u6237\u540d <code>example_user<\/code> \u5e76\u8d4b\u4e88\u6743\u9650<\/p>\n<pre class=\"hljs sql\"><code class=\"language-mysql\"><span class=\"hljs-keyword\">GRANT<\/span> ALL <span class=\"hljs-keyword\">ON<\/span> example_database.* <span class=\"hljs-keyword\">TO<\/span> <span class=\"hljs-string\">'example_user'<\/span>@<span class=\"hljs-string\">'localhost'<\/span> <span class=\"hljs-keyword\">IDENTIFIED<\/span> <span class=\"hljs-keyword\">BY<\/span> <span class=\"hljs-string\">'\u8fd9\u91cc\u6539\u6210\u4f60\u8981\u8bbe\u7f6e\u7684\u5f3a\u5927\u7684\u6ca1\u4eba\u80fd\u731c\u51fa\u6765\u7684\u968f\u673a\u7684\u5bc6\u7801'<\/span>;  \n<\/code><\/pre>\n<p>\u5237\u65b0 MySQL \u6743\u9650<\/p>\n<pre class=\"hljs sql\"><code class=\"language-mysql\"><span class=\"hljs-keyword\">FLUSH<\/span> <span class=\"hljs-keyword\">PRIVILEGES<\/span>;  \n<\/code><\/pre>\n<p>\u6ca1\u95ee\u9898\u4ee5\u540e\u5c31\u53ef\u4ee5\u9000\u51fa\u4e86<\/p>\n<pre class=\"hljs php\"><code class=\"language-mysql\"><span class=\"hljs-keyword\">EXIT<\/span>;  \n<\/code><\/pre>\n<p>\u65b0\u5efa\u7acb\u4e00\u4e2a <code>\/var\/www\/example.com\/mysql-test.php<\/code> \u6587\u4ef6\u5e76\u6d4b\u8bd5<\/p>\n<pre class=\"hljs php\"><code class=\"language-bash\">cat &gt;&gt; \/<span class=\"hljs-keyword\">var<\/span>\/www\/example.com\/mysql-test.php &lt;&lt; EOF  \n<span class=\"hljs-meta\">&lt;?php<\/span>  \n\\$dbname = <span class=\"hljs-string\">'example'<\/span>;    <span class=\"hljs-comment\">\/\/MySQL \u6570\u636e\u5e93\u540d<\/span>\n\\$dbuser = <span class=\"hljs-string\">'example_user'<\/span>;   <span class=\"hljs-comment\">\/\/MySQL \u7528\u6237\u540d<\/span>\n\\$dbpass = <span class=\"hljs-string\">'\u4f60\u7684\u5f3a\u5927\u7684\u6ca1\u4eba\u53ef\u4ee5\u731c\u51fa\u6765\u7684\u5bc6\u7801'<\/span>;\n\\$dbhost = <span class=\"hljs-string\">'localhost'<\/span>;  <span class=\"hljs-comment\">\/\/\u5b89\u88c5\u5728\u672c\u5730\u5c31\u7528 localhost<\/span>\n\\$link = mysqli_connect(\\$dbhost, \\$dbuser, \\$dbpass) <span class=\"hljs-keyword\">or<\/span> <span class=\"hljs-keyword\">die<\/span>(<span class=\"hljs-string\">\"Unable to Connect to '\\$dbhost'\"<\/span>);\nmysqli_select_db(\\$link, \\$dbname) <span class=\"hljs-keyword\">or<\/span> <span class=\"hljs-keyword\">die<\/span>(<span class=\"hljs-string\">\"Could not open the db '\\$dbname'\"<\/span>);  \n\\$test_query = <span class=\"hljs-string\">\"SHOW TABLES FROM \\$dbname\"<\/span>;\n\\$result = mysqli_query(\\$link, \\$test_query);\n\\$tblCnt = <span class=\"hljs-number\">0<\/span>;\n<span class=\"hljs-keyword\">while<\/span>(\\$tbl = mysqli_fetch_array(\\$result)) {  \n  \\$tblCnt++;\n  <span class=\"hljs-comment\">#echo \\$tbl[0].\"&amp;lt;br \/&amp;gt;\\n\";<\/span>\n}\n<span class=\"hljs-keyword\">if<\/span> (!\\$tblCnt) {  \n  <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"MySQL is working fine. There are no tables. More information on https:\/\/sb.sb\/tag\/mysql\/\"<\/span>;\n} <span class=\"hljs-keyword\">else<\/span> {\n  <span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"MySQL is working fine. There are \\$tblCnt tables. More information on https:\/\/sb.sb\/tag\/mysql\/\"<\/span>;\n}\n<span class=\"hljs-meta\">?&gt;<\/span>\nEOF  \n<\/code><\/pre>\n<p>\u521b\u5efa\u5b8c\u6bd5\u540e\u8bbf\u95ee <code>http:\/\/example.com\/mysql-test.php<\/code> \u5982\u679c\u51fa\u73b0 <code>MySQL is working fine. There are no tables.<\/code> \u5219\u8bf4\u660e MySQL \u5de5\u4f5c\u6b63\u5e38\u3002<\/p>\n<p>\u597d\u4e86\uff0c\u4ee5\u4e0a\u5c31\u662f\u57fa\u672c\u7684 Debian 9.x &#8220;Stretch&#8221; \u5b89\u88c5\u6700\u65b0\u7248 LEMP \u7684\u6559\u7a0b\uff0c\u5982\u6709\u95ee\u9898\u53ef\u4ee5\u968f\u65f6\u53d1\u8bc4\u8bba\u7559\u8a00\u8ba8\u8bba\u3002<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Debian 9 \u4ee3\u53f7 Stretch \u5728 2017 \u5e74 6 \u6708 18 \u53f7\u6b63\u5f0f\u53d1\u5e03\uff0c\u7531\u4e8e\u662f\u6700\u65b0\u7684\u7cfb\u7edf\uff0c\u539f\u6765\u57fa\u4e8e [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[81,165,170,201,285],"class_list":["post-98","post","type-post","status-publish","format-standard","hentry","category-hardware","tag-debian-9","tag-lemp","tag-lnmp","tag-nginx","tag-stretch"],"_links":{"self":[{"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":0,"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"wp:attachment":[{"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myya.net\/index.php\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}