ところでCentosでのnginx,php,mysqlおよびphpmyadminの構成

11664 ワード

大話centosの下でphalconフレームワークを配置
Centosかubuntuか?
このタイトルに沿って使うと、心の中では「私が以前使っていたwindowsを話してもいいですか?」「windows下xampp,wampワンタッチ配置よ、木あり!私は最初から馬鹿で無邪気に買ったばかりのアリクラウドサーバーにwindow Server 2008をインストールし、xamppの配置に着手し、2時間で解析環境をすべて配置し、心の中でどんなサーバーが難しいのかとツッコミを入れ、本大(diao)神(si)目にはクズだらけ!いろいろな喜びがあって、楽しくテスト会社のサイトを始めて、それから私はあまり考えていません(やはり若すぎます)、それから数日间プロジェクト开発に浸って抜け出せなくて、サーバーを振り回すことができませんでした.
プロジェクトが終わりに近づいたので、オンラインになってみると、ローカルプログラムをサーバーにアップロードしました(サーバーがwindows環境なので、デスクトップのリモート接続(私は本当にツッコミを入れられない)macでは本当に使いにくい)、windowsの下でリモートFTP接続を配置していないため、悲劇的な共有ディスクドライブでプログラムを更新しました(誰が誰を使っているか知っています)、いろいろな遅いことは言いませんでしたが、まだいつも紛失しています.しかし、これらは私にwindowsの懐を放棄する考えを生んでいません.
プロジェクトの前のバックグラウンドはすべて私が自分で作ったので、フロントエンドはh 5+jsを使って、各种のajaxがデータインタフェースを呼び出すことを免れられなくて、それから悲剧はこれで発生します~windowsのapache 2は3、5分でしゃっくりしておならをして、取引先のバックグラウンドはいつも登场することができなくて、基本は1つの电话で、私の心の中はやはりlinuxシステムこれで私の3*24時間のCentOs+nginx+php+mysql+phpmyadmin+phalcon振り回される旅が始まりました(nginxは7*24時間再起動しない小金剛だそうです).
最初は配置されたunbun 12だったからです.04のシステムは、始める前にubuntuを使うかcentosを使うか考えたことがありますか?最後に、私はやはりcentosを選んだ.名前が少し大気を感じているからだ.
環境のインストール
  • PHP-FPMはCentOSの公式ライブラリに存在しないため、まずサードパーティの拡張ソフトウェアソースを追加し、以下のコマンドを実行する必要があります:
    rpm --import https://fedoraproject.org/static/0608B895.txt 
    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-		release-6-8.noarch.rpm
    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    rpm -ivh http://rpms.famillecollet.com/enterprise/remi-		release-6.rpm
    yum install yum-priorities
  • その後、編集:vi/etc/yum.repos.d/epel.repo:
    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    baseurl=http://mirrors.aliyun.com/epel/6/$basearch
    http://mirrors.aliyuncs.com/epel/6/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
    failovermethod=priority
    enabled=1
    priority=10
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  • 次いでvi/etc/yum.repos.d/remi.repo:
    [remi]
    
    name=Les RPM de remi pour Enterprise Linux 6 - $basearch
    baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
    mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
    enabled=1
    priority=10
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

  • 必要なパッケージファイルをインストールできます.
    MySQLサーバーのインストール
    yum install mysql mysql-server

    -Nginxのインストール
    yum install nginx

    PHPおよび関連部品の取り付け
    	yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap 		php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss 		php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap 		php-tidy php-pecl-apc
  • MySQL
    chkconfig --levels 235 mysqld on
    service mysqld start
  • を起動
  • Nginx
    chkconfig --levels 235 nginx on
    service nginx start
  • を起動する
  • PHP-FPM
    chkconfig --levels 235 php-fpm on
    service php-fpm start
  • を起動する
  • Nginxの起動に失敗した場合、Apache httpdサービスがインタフェースを占有している可能性があります.この場合、Nginxの堅牢なポートを変更するか、Apache httpdを変更するか、Apache httpdを直接削除します.
    apachectl stop
    yum remove httpd
    chkconfig --level 235 httpd off
  • mysqlパスワードを変更
  • 実行mysql_secure_Installationコマンドは、初めてインストールしたので直接車に戻り、新しいパスワードの設定
  • に入ります.
    PHPの設定
  • PHPプロファイルを開く:vi/etc/php.ini
  • cgiを設定.fix_pathinfo=0:(ここに穴があります~!)

  • [...]
    ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
    ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
    ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
    	; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
    cgi.fix_pathinfo=0
    [...]

    upload_の設定max_filesize最大ファイルアップロードサイズupload_max_filesizeは16 MBです.
    ; Maximum allowed size for uploaded files.
    ; http://php.net/upload-max-filesize
    upload_max_filesize = 16M

    post_の設定max_sizeは32 MB:
    ; Maximum size of POST data that PHP will accept.
    ; Its value may be 0 to disable the limit. It is ignored if POST data 	reading
    ; is disabled through enable_post_data_reading.
    ; http://php.net/post-max-size
    post_max_size = 32M

    開く:vi/etc/php-fpm.d/www.conf :
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm.sock;

    および:
    listen.owner = www
    listen.group = www
    listen.mode = 0660
    
    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default 	user's group
    ;       will be used.
    ; RPM: apache Choosed to be able to access some dir as httpd
    user = www
    ; RPM: Keep a group allowed to write in log dir.
    group = www
  • 以上はすべての环境配置がほぼ终わった(普通は1时间ですべてが终わって、2 M帯域幅なら)以上のインストール配置は潘韬个人ブログ:http://xingzhewujiang.org/press/install-nginx-mysql-php-fpm-pahclon-on-centos-65.html。配置が终わったこれらは私はその时私が配置が完成するまで远くないと思って、自分が素晴らしいと感じます~
  • ドメイン名の解析
    -以前からドメイン名を解析していたので、nginx仮想ホストを構成するだけです.
  • 静解析
  • 静的解析nginxによって提供するvirtual.confに提供される例の解析はlisten 80である.server_name somename alias another.alias; location/{ root html; index index.html index.htm;}}
  • 動的解析、nginx自体がphpを解析できないため、phpを9000ポートに転送し、php-fpmに提出して解析します.ここで私のプロファイル
    server {
    
    	listen       80;
    server_を貼ります.name yourservername.com(解析が必要なドメイン名);index index.html index.htm index.php; set $root_path yourpath(プロジェクトエントリファイルの場所);root $root_path; try_files $uri $uri/@rewrite; location @rewrite { rewrite ^/(.*)$/index.php?_url=/$1; } location ~ .php { fastcgi_pass 127.0.0.1:9000; fastcgi_index/index.php;
    	include /etc/nginx/fastcgi_params;
    
    	fastcgi_split_path_info       ^(.+\.php)(/.+)$;
    	fastcgi_param PATH_INFO       $fastcgi_path_info;
    	fastcgi_param PATH_TRANSLATED $document_root			$fastcgi_path_info;
    	fastcgi_param SCRIPT_FILENAME $document_root			$fastcgi_script_name;
    	}
    
    	location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
    	root $root_path;
    	}
    
    location ~ /\.ht {
    deny all;
    }
    }

  • -ここで注意が必要なのは、nginxを再起動したときに$documentを認識できないことです.root、fastcgiをparam SCRIPT_FILENAME $document_root$fastcgi_script_name;中の$document_rootはあなたのプロジェクトの入り口のファイルの位置に変えて、私はこの地方で長い間悩んで、半日やっと整理して、この解析規則は基本的に大部分のphpプロジェクトの解析を満たすことができます.
    phpmyadminのインストール
  • リソースダウンロード
  • phpmyadminトップページ(http://www.phpmyadmin.net/home_page/index.php)、downloadを開き、最新のphpmyadmin(多言語(all-languages))のバージョンをダウンロードし、ダウンロードが完了したら、パッケージ用ftpツールでサーバーにアップロードし、アドレスはホームディレクトリの下に新しいphpmyadminフォルダの下に置くことをお勧めします。
  • 解析phpmyadmin
  • 仮想ホストをphpmyadminルートディレクトリの下に解析するか、上の動的解析ルールに沿って解析するかを構成します.

  • よくあるエラー
  • インストールが完了すると、よくあるエラーが発生します.phpmyadminにアクセスすると、エラーコードは次のとおりです.
  • Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
  • この时ネット上で何か5つのステップを提供して神馬を解決することができて、私はとても(sha)真(bi)の1つ1つの試みを認めて、それから・・・不思議なことが発生して、まったく役に立たない!このようなソリューション(http://www.7edown.com/edu/article/soft_4365_1.html)、すべてコピーして貼り付けた答え、ルート-は役に立たなかった(前後の関係が欠けているため、みんながむやみにやった).
  • 最後にセッションのプロファイルに基づいてphpmyadmin/libraries/sessionを見つけました.inc.php、コードを変更します:
    if (! isset($_COOKIE[$session_name])) { 
    // on first start of session we check for errors 
    // f.e. session dir cannot be accessed - session file not created 
    $orig_error_count = $GLOBALS['error_handler']->countErrors(); 
    //session_save_path('./tmp'); 
    session_save_path("/tmp"); 
    $r = session_start(); 
    if ($r !== true 
    || $orig_error_count != $GLOBALS['error_handler']->countErrors() 
    ) { 
    setcookie($session_name, '', 1); 
    /* 
    * Session initialization is done before selecting language, so we 
    * can not use translations here. 
    */
        PMA_fatalError('Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.'); 
    } 
    unset($orig_error_count); 
    } else { 
    session_save_path("/tmp"); 
    session_start(); }
  • ルートディレクトリの下にtepフォルダを新規作成し、読み書き権限を与えることを覚えています(chmod 777./)、私の比較的簡単で乱暴で、少し安全上の危険性があります.
  • これで、仮想ホストドメイン名を開くとphpmyadminに正常にアクセスできます.

  • phalcon環境の構築
  • 以上の手順でフロント環境が基本的に構築されているため、最後に今日の主役ゲスト(phalconフレームワーク)の構築が必要になります.
  • phalcon紹介(http://www.phalconphp.com/)
  • phalconはc言語で直接作成されたphpフレームワークであり、柔軟性(低結合)で、拡張性が強く、高性能で有名であり、登録、工場サービスの形式で存在するphpフレームワークでもある.
  • 私たちのシステムはCentosなので、公式に私たちに与えられたケース(http://phalconphp.com/zh/downloadphalconモジュールを手動でコンパイルする必要があります
  • )によると
  • 2 2 2つのコンパイル環境とツールのインストール:
    yum install gcc libtool make git
    yum install php55w-devel	
    (          php     ,          phpinfo()  )。
  • 最新のphalconファイル
    git clone git://github.com/phalcon/cphalcon.git
    cd cphalcon/build
  • をダウンロード
  • は、
    ./install
  • を実行する.
  • コンパイル済みsoファイルディレクトリアドレス:
    /usr/lib64/php/moudels/phalcon.so
  • FAQ
  • 最後にso拡張ファイルは.iniファイルでは、Centosは/etc/phpに直接使用できないことに注意してください.iniに直接加える:extension=phalcon.so,このようにphp-fpmを再起動するとphp:startup()というエラーが報告されます.
  • /etc/phpが必要です.dにphalconを新規作成する.iniファイル、
    vi phacon.ini
  • 加入内容:
    extension=phalcon.so
  • それから保存して、php-fpmサービスを再起動して、この場所は私を何時間もやって、最初はドキュメントをよく読んでいなかったので、半日調べてcentosを返して新しいものを作る必要があります.iniファイルをロードできます.
  • 次にphp-fpmに再起動されても半日も穴があいた.その再起動命令は
    	services php-fpm restart
  • だった.
    私は/etc/init.d/php-fpm restartは半日も反応せず、ずっと再起動できなかった.半日パスワードを間違えたのか.
  • これでphalconフレームワークがロードされ、
  • にプロジェクトがサーバに配備されます.
  • 同様に、ドメイン名をサーバに解析し、前の動的解析プロファイルに沿って使用します.その後、ブラウザでWebサイトを軽く入力するだけで、意外なことがなく、エラーを報告します.
  • 私が前に書いたドキュメントをよく見ると、nginx環境を構成してphpを変更していることがわかります.iniの時、私はここに穴があると書きました.etc/phpを見つける必要があります.ini:
    cgi.fix_pathinfo=0  
    cgi.fix_pathinfo=1
  • 変更が完了するとサーバが再起動し、2番目のエラー
  • が発生します.
  • 第2のエラーは権限エラーであるべきで、エラーコード:Volt can't be writen!,プロジェクトファイルの読み書き権限(775)chmod 755-R./
  • 以降、おなじみのphalconインタフェースが見えます!
  • 楽しい~花を撒きます.

  • 現在、サーバーの配置はこのようにして、基本的に小型プロジェクトの需要を満たすことができますが、nginxはバックグラウンドphpなどの解析には特に理想的ではありません.だから、私はもう数日前のバックグラウンドサーバーを分離するつもりです.フロントエンドはubuntu+nginx+mongodbで、バックグラウンドはapache 2+centos+mysql(postgresql)+phpで、最後にバックグラウンドは業務とデータの持続層の分離を実現します.データインタフェースとデータベースを別のサーバに配置し、分散アーキテクチャを実現します.
    付録:
  • centos共通コマンド:
    php-fpm    :  services php-fpm restart
    nginx    :services nginx restart     /etc/init.d/nginx -s reload
  • 付与権限:
    chmod 777 -R ./
    chrow  www:www(   :   ) -R ./
  • この文書について何か質問やアドバイスがあれば、
    メールボックスをzhoukai at dreamzk dot cnに送ってください
    あ、最初の時間に返事します.ありがとうございます.転載は出典を表明してください.ありがとうございます.