LoginSignup
1
1

More than 5 years have passed since last update.

Centos7でPHP開発サーバー構築

Last updated at Posted at 2018-04-21

背景

Symfonyで開発するため、開発メンバーそれぞれドメイン(Port)を用意しで実行したい
開発メンバー各自、自分でApacheのVirtual Hostを設定して使えるようにする
Samba経由で直接開発サーバー上にソース開発、デバッグができるようにしたい

環境情報

$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# ifconfigが使えない場合
yum provides ifconfig
yum -y install net-tools

PHP7.1をインストール

[CentOS 7 に PHP 7.1 と phpMyAdmin をインストール]
https://qiita.com/sato-hirokazu/items/7795593b14c461bc4e6d

# 古いバージョンのPHPを消す
yum -y remove php-*

# yumリポジトリ設定が完了した後
yum install php php-mbstring php-intl

# PHPバージョンを確認する
php -v

#※必要に応じて拡張機能をインストール
yum install  php-mongodb php-pdo php-xml php-opcache php-curl php-gd php-mcrypt php-bcmath php-devel

Httpd(Apache)

Virtual Host (バーチャルホスト) 設定

#create vhosts config directory
mkdir /etc/httpd/conf.vhost.d
#edit httpd.conf
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
vi /etc/httpd/conf/httpd.conf
vhostフォルダ配下のファイルを読み込むようにする
/etc/httpd/conf/httpd.conf
# Supplemental configuration
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
IncludeOptional conf.vhost.d/*.conf

Samba

Sambaインストール

yum install samba

Samba設定

#backup smb.conf -> smb.conf.bak
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
#edit smb.conf
vi /etc/samba/smb.conf

/home/$user/ ディレクトリを公開する

/etc/samba/smb.conf
[homes]
        workgroup = WORKGROUP
        comment = Home Directories
        valid users = %S
        browseable = yes
        read only = No
#       inherit acls = Yes
        directory mask = 0755
        create mask = 0755

conf.vhost.conf を公開する

/etc/samba/smb.conf
[vhost]
        path = /etc/httpd/conf.vhost.d
        workgroup = WORKGROUP
        comment = vhost
        #valid users = %S
        brwoseable = Yes
        read only = No
        directory mask = 0755
        create mask = 0755
/etc/samba/smb.conf
[web]
        comment = Http Web publish
        path = /var/www/html/web
        browseable = Yes
        read only = No
        writable = Yes
        public = Yes
        inherit acls = Yes
        force create mode = 0775
        directory mask = 0775
        force group = cms

サービスを起動する

#自動起動
systemctl enable smb.service

#起動
systemctl start smb.service

sambaアカウントを追加

useradd qiita
passwd qiita
smbpasswd -a qiita

Composerを登録

wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
# 実行権限を付与する
chmod 0755 /usr/local/bin/composer
composer -v

firewalld 設定

#現在のゾーンを確認する
firewall-cmd --list-all-zones 

#add service to public zone
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https

#portを追加する
firewall-cmd --permanent --add-port=8080/tcp

#firewall設定の再読み込み
firewall-cmd --reload

#zoneの確認
firewall-cmd --list-all-zones 

#restart firewall
systemctl restart firewalld.service

#rollback
#firewall-cmd --permanent --zone=public --remove-service=http
#firewall-cmd --permanent --zone=public --remove-service=https
#firewall-cmd --permanent --zone=public --remove-service=samba
#firewall-cmd --permanent --remove-port=8080/tcp
#firewall-cmd --reload

#以下はSELinux有効にする場合に試す内容
# /var/www/html以外の場所のコンテンツが公開できなかったりする場合
#試してみること
#setsebool -P httpd_enable_homedirs 1
#chcon -R -t httpd_sys_content_t /home/qiita

#SELinux有効で使う場合
#Symfony ファイル読み書き権限がない
chcon -R -t httpd_sys_rw_content_t project-top/var/

参考[chcon]
http://man.linuxde.net/chcon
https://xiaoguo.net/wiki/centos-7-firewalld.html

1
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1