PHPサーバ環境の構築


group_5622_0
この2,3日前の技術文書をめくってみると、PHPプロジェクトを導入するために、新しいアリクラウドサーバをどのように構築するか、環境を構築するかを共有する価値があることがわかりました.jsプロジェクトなど.
始めましょう.
1.Dockerを利用してCentosサーバ2を作成する.インストールNginx 3.PHP 74を取り付ける.composer 5をインストールします.インストールNode.js6. gitとsvnのインストール
DockerによるCentosサーバの作成
私自身はアリクラウドサーバーを持っていないので、実際のサーバーに環境を構築することはできません.しかし、Dockerを利用してシミュレーションすることができます.
まず、システムを統合したCentosミラーが必要です.
Dockerfileの内容は次のとおりです.
FROM daocloud.io/centos:7

MAINTAINER "yemeishu" 
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

コンテナを起動できますが、ここでは「Dockerを実行してsystemctlを使用してエラーを報告する」という問題を回避します.解決策は、/sys/fs/cgroupディレクトリをコンテナの/sys/fs/cgroupディレクトリにマウントし、読み取り専用権限を構成することですが、docker runコマンドは-dパラメータしか使用できません.-itパラメータは使用できません.-itパラメータを使用すると、まだ詰まってしまいます.
docker run -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro local/centos7-systemd

参考:github.com/docker-libr…
コンテナの実行:
vimを実行してファイルを編集しようとすると、vimはインストールされていないことがわかりました.この場合、コンテナに直接インストールできますが、シミュレーションをより徹底的に行うために、Dockerfileファイルを変更して、ミラーバンドにvimを付けることができます.
FROM daocloud.io/centos:7

MAINTAINER "yemeishu" 
ENV container docker
RUN yum -y install vim-enhanced

RUN yum -y install vim*

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

ミラーを作成し、コンテナを生成し、コンテナを実行し、vimが正常にインストールされたかどうかを確認し、直接図を見ます.
インストールツール
「centosサーバー」ができて、PHP(Laravel/Lumen)環境の配置を始めました.
インストールNginx
Nginxをインストールする前にyumソースミラーを変更する必要があります.アリクラウドを使用しています.
まずwgetをインストールします.
yum install wget -y
# CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

# CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum -y install epel-release
yum install nginx -y
systemctl start nginx
systemctl enable nginx //      

PHP 7の取り付け
ソースを追加:
rpm  -Uvh  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm  -Uvh  https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

インストール:
yum  install  php70w -y

一般的に使用するphpプラグインをインストールします.
yum install php70w-json php70w-xml php70w-mbstring php70w-mysqlnd php70w-fpm -y

composerのインストール
ComposerはPHPの依存管理ツールです.プロジェクトが依存しているコードライブラリを明らかにすることができます.プロジェクトにインストールされます.Composerはパッケージマネージャではありません.はい、「packages」と「libraries」に関連していますが、プロジェクトごとに管理され、vendorなどのディレクトリにインストールされます.デフォルトではグローバルに何もインストールされません.そのため、これは管理に依存しています.
この考えは新鮮ではなく、Componenterはnode's npmとruby's bundlerの強い啓発を受けた.当時PHPの下には似たような道具はなかった.
Composerはこのようにして問題を解決します.
a)いくつかのライブラリに依存するプロジェクトがあります.
b)一部のライブラリは他のライブラリに依存する.
c)あなたが依存していることを宣言します.
d)Composerはどのバージョンのパッケージをインストールする必要があるかを見つけて、それらをインストールします(それらをあなたのプロジェクトにダウンロードします).参考:docs.phpcomposer.com/00-intro.ht...
1.phpコマンドでインストール
#        - composer-setup.php -      。
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

#       。
php composer-setup.php

#       。
php -r "unlink('composer-setup.php');"

#                      composer.phar       /usr/local/bin/     
mv composer.phar /usr/local/bin/composer

詳細:getcomposer.org/download/
2.Packagist/Composerを使用した中国フルミラーリング加速
composerのグローバルプロファイルの変更(推奨方法)
composer config -g repo.packagist composer https://packagist.phpcomposer.com

詳細:pkg.phpcomposer.com/
3.パラレルcomposer install、ダウンロードを神助のようにする
composer global require hirak/prestissimo

4.リアルタイム更新
ヒント:composer selfupdateを常に実行してComponentが最新バージョンであることを忘れないでください.
インストールNode.js
yum -y install nodejs npm --enablerepo=epel

国内ミラーのインストール:
npm install -g cnpm --registry=https://registry.npm.taobao.org

nをインストールしてnodejsバージョン//既存のサーババージョンと一貫性を保つ
cnpm install -g n

最新のstable版をインストールします.
n stable

または、n 0.8.20などの指定バージョンのインストール
gitとsvnのインストール
yum -y install git
yum -y install subversion

テスト
基礎的なツールと環境ができました.では、効果を試して、Lumenプロジェクトをインストールしてみましょう.
nginxを構成します./etc/nginx/conf.d/パスでblogを作成する.conf
server {
    listen       80;
    server_name  blog.xxx.com;
    #index index.php index.html;

    location / {
        root /www/html/blog/public;
        try_files $uri $uri/ /index.php?$query_string;
        index index.php index.html index.htm;
    }

    location ~ \.php$ {
        #try_files $uri = 404;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME /www/html/blog/public$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
    }
}

php-fpmを起動し、curlコマンドを使用してアクセスしてみます.
正常に印刷できます:Lumen(5.5.0)(Laravel Components 5.5.*)は、nginxとphp-fpmが起動し、構成に成功したことを示しています.
まとめ
新しいことはよく知られているが,本稿ではdockerシミュレーションCentosサーバを簡単に学習することによって環境を構成し続ける.
アリクラウドサーバーまたはテンセントクラウドサーバーがあり、Centos 7システムである場合は、上記の手順に従って、必要なツールをインストールし、通常のPHPまたはNodeを配置します.jsプロジェクトはあまり問題ないはずです.次に、通常の運用ツールと防護ツールを導入できます.
以下に、いくつかの問題点と知識点を列挙します.
1.centos 7 dockerコンテナレポートdocker Failed to get D-Bus connectionエラー
このエラーの原因はdbus-daemonが起動できなかったことです.システムctlが使えないわけではありません.CMDまたはentrypointを/usr/sbin/initに設定すればよい.dockerコンテナはdbusなどのサービスを自動的に起動します.次のようになります.
docker run --privileged -ti --name test  docker.io/centos:7  /usr/sbin/init

2.報Error:xz compression not availableの解決方法
yum remove epel-release
# Sometimes that is not enough, you need to remove the cache as well by:

rm -rf /var/cache/yum/x86_64/6/epel
# Then you can install the epel-release again

yum -y install epel-release

# yum clean all is doing great for cleaning the cache

3.FastCgiとphp-fpmの関係は?
この投稿を詳しく参照してください:segmentfault.com/q/101000000…
「完」
coding 01ご注目をお待ちしております
qrcode
ご覧いただきありがとうございます
qrcode