Laravelは、MVC(Model-View-Controller)デザインパターンに従ったオープンソースのPHPフレームワークです。これは、CodeIgniter(CI)フレームワークの高度な代替手段を提供する試みとして、2011年にTaylorOtwellによって作成されました。 2011年にLaravelプロジェクトがバージョン1と2をリリースし、今年はバージョン5.4がリリースされ、「artisan」という名前のコマンドライン(CLI)サポート、より多くのデータベースタイプの組み込みサポート、改善されたルーティングなどの多くの改善が行われました。
>このチュートリアルでは、Laravel WebFrameworkとNginxWebサーバー、PHP-FPM 7.1、およびMariaDBをCentOS7システムにインストールする方法を紹介します。 CentOS7サーバーのLEMPスタックにLaravelをインストールして構成する方法を段階的に説明します。
このチュートリアルは、UbuntuのLaravelでも利用できます。
前提条件:
- CentOS7サーバー。
- ルート権限。
EPELまたはExtraPackagefor Enterprise Linuxは、CentOS公式リポジトリに含まれていない便利なソフトウェアパッケージを提供する追加のパッケージリポジトリです。 CentOSやFedoraなどのRPMベースのLinuxディストリビューションにインストールできます。
このチュートリアルでは、Nginxパッケージが公式のCentOSリポジトリに存在しないため、Nginxインストール用のEPELリポジトリが必要です。以下のyumコマンドを使用してEPELリポジトリをインストールします。
yum -y install epel-release
EPELリポジトリがインストールされました。
このチュートリアルでは、LEMPスタックの下でLaravelを実行します。 NginxはLEMPスタックのWebサーバー部分であり、EPELリポジトリからインストールできます。
yumを使用してEPELリポジトリからNginx1.10をインストールします。
yum -y install nginx
インストールが完了したら、Nginxを起動し、起動時に開始するように追加します。
systemctl start nginx
systemctl enable nginx
Nginxはポート80で実行されています。以下のnetstatコマンドで確認してください。
netstat -plntu
結果として「コマンドが見つかりません」というメッセージが表示された場合は、以下に示すようにnet-toolsパッケージをインストールします。
yum -y install net-tools
Laravelは、PHPバージョンが5.6.4以上のサーバーにインストールできます。このチュートリアルでは、Laravelでサポートされている最新バージョンのPHP7.1を使用します。
PHP 7.1はCentOSベースリポジトリに存在しないため、「webtatic」という名前のサードパーティリポジトリからインストールする必要があります。
このrpmコマンドを使用してwebtaticリポジトリをインストールします。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
これで、1つのyumコマンドでLaravelに必要なすべての拡張機能を備えたPHP-FPMをインストールできます。
yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip
PHP7.1がCentOS7システムにインストールされました。
次に、vimで構成ファイルphp.iniを編集してPHPを構成します。
vim /etc/php.ini
下の行のコメントを外し、値を0に変更します。
cgi.fix_pathinfo=0
ファイルを保存してエディタを終了します。
次に、PHP-FPMファイルwww.confを編集します。
vim /etc/php-fpm.d/www.conf
PHP-FPMは、ユーザーとグループ' nginxの下で実行されます '、以下の2行の値を' nginxに変更します '。
user = nginx
group = nginx
サーバーポートを使用する代わりに、PHP-FPMはソケットファイルで実行されます。 'listen'値をパス'/run/php-fpm/php-fpm.sockに変更します '以下に示すように。
listen = /run/php-fpm/php-fpm.sock
ソケットファイルの所有者は「nginx」ユーザーになり、権限モードは660になります。コメントを解除して、次のようにすべての値を変更します。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
環境変数については、これらの行のコメントを解除し、以下に示すように値を設定します。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
ファイルを保存してvimを終了し、PHP-FPMを起動して、起動時に実行できるようにします。
systemctl start php-fpm
systemctl enable php-fpm
PHP-FPMはソケットファイルで実行されています。以下のコマンドで確認してください。
netstat -pl | grep php-fpm.sock
PHPおよびPHP-FPM7.1のインストールと構成が完了しました。
LaravelプロジェクトにはMySQLまたはPostgreSQLを使用できます。このチュートリアルでは、MariaDBデータベースサーバーを使用します。 CentOSリポジトリで利用できます。以下のyumコマンドを使用してMariaDB-serverをインストールします。
yum -y install mariadb mariadb-server
インストールが完了したら、「mariadb」を起動し、起動時に起動できるようにします。
systemctl start mariadb
systemctl enable mariadb
MariaDBが起動し、ポート3306で実行されています。netstatコマンドで確認してください。
netstat -plntu
次に、「 mylsq_secure_installation」を使用してMariaDBのルートパスワードを構成します。 '以下のコマンド。
mysql_secure_installation
mariadbのrootパスワードを入力したり、匿名ユーザーを削除したりします。
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDBのインストールと構成が完了しました。
PHP Composerは、PHPプログラミング言語のパッケージマネージャーです。これは2011年に作成され、Node.jsの「npm」とRubyの「bundler」インストーラーに触発されています。 curlコマンドを使用してcomposerをインストールします。
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
インストールが完了したら、「作曲家」を使用してみてください 'コマンドを実行すると、次のような結果が表示されます。
composer
CentOS7にインストールされたPHPComposer
このステップでは、Laravelプロジェクトのnginx仮想ホスト構成を作成します。このLaravelインストールのWebルートディレクトリを定義する必要があります。「/var / www / laravel」を使用します 'Webルートディレクトリとしてのディレクトリ。
以下のmkdirコマンドで作成します:
mkdir -p /var/www/laravel
次に、nginxディレクトリに移動し、conf.dディレクトリに新しい仮想ホスト構成ファイルlaravel.confを作成します。
cd /etc/nginx
vim conf.d/laravel.conf
以下の構成をファイルに貼り付けます:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /var/www/laravel/public;
index index.php index.html index.htm;
# Your Domain Name
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
ファイルを保存してvimを終了します。
nginx構成をテストし、エラーがないことを確認してから、nginxサービスを再起動します。
nginx -t
systemctl restart nginx
Laravelのnginx仮想ホストの構成が完了しました。
Laravelをインストールする前に、サーバーにunzipをインストールする必要があります。
yum -y install unzip
次に、laravelWebルートディレクトリ「/var / www/laravel」に移動します。
cd /var/www/laravel
Laravelは、サーバーにフレームワークをインストールするための2つの方法を提供します。 LaravelインストーラーでLaravelをインストールでき、PHPComposerでインストールできます。このチュートリアルでは、composerコマンドを使用して新しいプロジェクトを作成してLaravelをインストールします。
以下のコマンドを実行してLaravelをインストールします。
composer create-project laravel/laravel .
Laravelのインストールが完了するのを待ちます。これには時間がかかる場合があります。
インストールが完了したら、LaravelWebルートディレクトリの所有者を「nginx」ユーザーに変更し、以下のコマンドを使用してストレージディレクトリの権限を755に変更します。
chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage
Laravelのインストールが完了しました。
このチュートリアルでは、LaravelはSELinuxの「Enforcing」モードで実行されます。 SELinuxのステータスを確認するには、以下のコマンドを実行します。
sestatus
その結果、SELinuxは'強制で実行されます。 'モード。
次に、CentOS7用のSELinux管理ツールをインストールする必要があります。
サーバーに「policycoreutils-python」をインストールします。
yum -y install policycoreutils-python
次に、Laravelディレクトリのコンテキストを変更してから、restoreconコマンドを使用して変更を適用する必要があります。以下に示すように、SELinux管理コマンドを実行します。
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'
LaravelのSELinux構成が完了しました。
Webブラウザーを開き、サーバーのLaravelURLを入力します。 Nginx仮想ホストファイルでLaravelのドメイン名を定義しました。私のはlaravel.hakase-labs.co 。
ドメイン名にアクセスすると、Laravelのホームページが表示されます。
CentOS 7でのNginx、PHP-FPM7、MariaDBを使用したLaravelのインストールは成功しました。