SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

WSL(Windows Subsystem for Linux)のDebianでLAMP環境を作る

問題

WSL(Windows Subsystem for Linux)のdebian(stretch)でLAMP環境を作りたい。

Windows Subsystem for Linux - Debian

答え

WSLでLAMP環境を作ると、プログラムの実行はWSLのLAMP環境でできるようになり、ソースはCドライブなり任意の場所に置けて、通常のローカルのファイルと同様にエディタで編集できるようになる。

phpはfpm版を使ってみます。

インストール

apache2 は 2.4.25
MySQLはmariadb 10.1
php は 7.0

apt install apache2
apt install mysql-server
apt install php-fpm php-mysql

設定

a2enmod proxy_fcgi rewrite headers ssl など

Cドライブの \var\www にソースを置いているとしたら、頭に /mnt/c をつけて参照できる。

apache起動時に、「Protocol not available: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT」が出るときは設定に以下を追記する。

AcceptFilter http none
AcceptFilter https none

http://127.0.0.1/ でアクセスしたときのVirtualHostを追加するなど、設定を追加する。

vi /etc/apache2/sites-available/010-vhosts.conf
AcceptFilter http none
AcceptFilter https none
<VirtualHost *:80>
        ServerName 127.0.0.1
        DocumentRoot /mnt/c/var/www

        <Directory /mnt/c/var/www>
                Options FollowSymLinks
                AllowOverride All
                Require all granted
                <FilesMatch \.php
gt;
                    SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost/"
                </FilesMatch>
        </Directory>

</VirtualHost>
a2ensite 010-vhosts

php.ini は /etc/php/7.0/fpm/php.ini または /etc/php/7.0/cli/php.ini

my.cnf は /etc/mysql/my.cnf で、/etc/mysql/conf.d/* , /etc/mysql/mariadb.conf.d/* を読み込んでいる。

起動

service php7.0-fpm start
service mysql start
service apache2 start

設定

mysql_secure_installation でパスワード設定等しておく。

mysql_secure_installation

メモ

php5.6、7.1、7.2、7.3 などを使いたい場合は、リポジトリ https://packages.sury.org/php/ を有効にする。

#!/bin/bash
# To add this repository please do:

if [ "$(whoami)" != "root" ]; then
    SUDO=sudo
fi

${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
${SUDO} sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update

こちらでもよい。

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update

関連するメモ

コメント