Macでサーバー(Apache,PHP,MySQL,WordPress)環境の構築
Windowsを使っていると、Macはメティアクティア使いにくい!
サスガ、社長がアッチ系♪だけのコトはあるwwwww
なンで、Macを鯖とスルガ(学)、Windowsから操作シてゐク方法。
正直、他で鯖を作るより面倒!Macはクヅォ!!
ゑ?
MAMPを使ゑ?
使いまセンwwwww
関連:[Mac] PHPのバージョンが異なる問題 [HighSierra]
<Mac>
髙死鰓(High Sierra) 10.13.6
固定IP(192.168.0.xx)
以下、LAN内に於ゐて、ぢぶンだけで使う用途なンで、セキュリティーの配慮はシトランから、幼虫/妖虫/要注意wwwww
<Apache>
MacにはApacheが入っているが起動していないので
sudo apachectl start
で起動する。
Windows機から http://192.168.0.xx/ でアクセスすると、
「It works!」
と表示されるハヅ。
コレは、
/Library/WebServer/Documents/index.html.en
というファイルの内容である。
が、こんなワケの分からない場所を使うのはヴァクァ杉流ので、変更する。
httpd.confを編集するのだが、見えないので、以下で移動。
Finder>フォルダへ移動>/etc
/etc>apache2>httpd.conf
アクセス権で保存できないので、親のapache2やhttpd.confのアクセス権を変更(右クリック>情報を見る>最下部)。
編集にはワケの分からないviは使用せヅ、Macに入っている「テキストエディット」を使うコト。
244行目付近にある
DocumentRoot “/Library/WebServer/Documents"
<Directory “/Library/WebServer/Documents">
を
DocumentRoot “/users/www"
<Directory “/users/www">
と書き換える。
指定した/users/wwwに何か書いたファイルをindex.htmlとして置いておく。
Apacheを再起動。
sudo apachectl restart
Windows機から http://192.168.0.xx/ でアクセスしてその内容が見れるか確認する。
なお、Apacheは自動起動されないので、自動起動とする場合は(後述)。
上述の見えないモノ(etcやvarなど)は、
defaults write com.apple.finder AppleShowAllFiles -boolean true
の後に
killall Finder
で薄表示ではあるがFinderで見えるようになる。
後述のファイル共有により、Windows機からも見えるが、ショートカット的なアイコンとなっており、ダブルクリックでは開けないので、右クリック>ファイルの場所を開くで進める。
<mod_rewrite>
/etc>apache2>httpd.conf の
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
のコメント(#)を外して、Apacheを再起動。
mod_rewrite(URL書き換え)を有効にしないとWordPressでのパーマリンク設定でコケてしまう(Not Found)。
有効にしてもコケる場合は、WordPressのルートにある「.htaccess」にrewriteの記載があるかを確認するコト。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
ソレでもNot Foundになるのは
/etc>apache2>httpd.conf の
AllowOverride None
を
AllowOverride ALL
にし、Apacheを再起動。
この記載は、上述のDocumentRootの範囲内にあるハズ。
<Directory “/users/www">~</Directory>
ツマリwww内に於いてのみ有効なンで、ALLで安全なンかはシラン(SILANE)。
<ファイルアップロード上限>
WordPressでオオキメの画像をUPしようとすると
「このサイトのアップロードサイズ上限を超えています。」
として拒否されウヅァゐンで、以下の3行を追加、
<Directory “/users/www">
php_value memory_limit 128M
php_value post_max_size 64M
php_value upload_max_filesize 32M
</Directory>
Apacheを再起動。
ApacheだけでなくPHP側もカラみ、処理時間の問題もあるンで、詳細は以下が参考になる。
関連:phpの大容量ファイルアップロード(リクエスト)のサイズ最大値の制限解除 (外部サイト)
<ファイル共有>
システム環境設定>共有>ファイル共有 にチェックを入れ、
さらにオプションと進み、
SMBを使用してファイルやフォルダを共有
と
Windowsファイル共有のアカウントにチェックを入れる。
関連:Macでファイル共有を設定する (support.apple.com)
Windows機では \\192.168.0.xx でMacにアクセス可能。
コレでWindows機からファイルが編集可能となり、ファイルのコピーもできる。
但し、アクセス権には注意。
「読み/書き」だと編集可能だが、「読み出しのみ」だと読めても編集できヅ、「アクセス不可」だと読みスラできない。
リモートログインでchmodするか、Macで 右クリック>情報を見る>最下部 でアクセス権を変更すること。
例:chmod -R 777 www
自分は読み書きできても、PHPなどのプログラムではアクセスできないという場合もある。
また、プログラムが書き出したファイルが、Windows機から開けない/編集できないという場合もある。
プログラムのユーザーとWindowsのユーザーは異なるためだ。
本件で出現しそうなユーザー(名前)は、以下の通り。
・temp(自分)
・admin
・everyone
・_www
このアクセス権の問題には、延々とクルシメラルェルことになるので、ソレが面倒でアルナラ、ソクヅァに本件から手を引き、ドカタ、野球選手、プロレスラー、芸人にでもなるコトをオススメする。
<リモートログイン(SSH)>
システム環境設定>共有>リモートログイン
Tera Termとかで遠隔操作が可能になる。
以上により、Windows機でファイル編集、リモートログイン(テキスト操作)でApacheの再起動などができるので、ワケの分からないMacを操作する必要なナクナル。
<PHPを使う>
httpd.confの176行目付近にある
#LoadModule php7_module libexec/apache2/lib7.so
のコメント(#)を外して保存、Apacheを再起動。
(古い場合はlibphp5.soとなっている場合もあるので、「php」で検索。)
PHPが動いているかの確認は
<?php
phpinfo() ;
?>
でヨカロウ。
青画面に「PHP Version 7.1.23」などと表示されるハズ。
<Apacheの自動起動>
上述のように、Apacheは自動起動されない。
Macの起動と同時にApacheも起動させたい場合は、
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
を実行する。
Macが起動すれば、ログインしなくても、Apacheは起動している。
起動
sudo apachectl start
停止
sudo apachectl stop
再起動
sudo apachectl restart
<MySQL>
マヅ、以下を貼り付け。
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
関連:Homebrew(macOS 用パッケージマネージャー)
黄色文字等の後、
brew install mysql
MySQLの起動
mysql.server start
「SUCCESS!」と表示される。
MySQLのユーザー(root)のパスワードがないので設定する。
mysql_secure_installation
パスワードを仮に「WeSe@123456789」とする。
ログイン後にパスワードを変更する場合は、
mysqlにログイン
mysql -uroot -p
ALTER USER 'root’@’localhost’ IDENTIFIED WITH mysql_native_password BY 'WeSe@123456789’;
カンタンなパスワードだと以下が吐かれ認められない。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
exitで抜ける。
停止
mysql.server stop
再起動
mysql.server restart
MySQLはMacの起動時に自動起動されないので、
brew tap homebrew/services
brew services start mysql
で自動起動。
のハヅが、
Error: Failure while executing; `/bin/launchctl enable gui/501/homebrew.mxcl.mysql` exited with 112. で不可。
Macに向かってログインしないとMySQLは起動しない。
・Apache:ログイン不要
・PHP:ログイン不要
・MySQL:ログイン必要 (データベース接続確立エラー)
自動起動を止める場合は
brew services stop mysql
である。
brew services list
Statusの項目がstartedであれば有効化、stoppedであれば無効化されている。
phpがstoppedになっているが何故かMac起動時に立ち上がる。
<phpMyAdmin>
brew install phpmyadmin
phpMyAdminのダウンロード
phpMyAdmin-4.9.0.1-all-languages.zip
を解凍後、phpmyadminとリネームしてwwwに移動。
そのままだと Forbidden になるので、
chmod -R 775 phpmyadmin
とする。
phpmyadmin内にあるconfig.sample.inc.phpをconfig.inc.phpにリネーム。
$cfg['blowfish_secret’] = "; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
↓書き換え↓
$cfg['blowfish_secret’] = 'ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG-ABCDEFG’;
↑短くても動くがエラーが常に表示されウヅァゐ。
$cfg['Servers’][$i]['host’] = 'localhost’;
↓書き換え↓
$cfg['Servers’][$i]['host’] = '127.0.0.1’;
↑こうしないとphpMyAdminにログインできない。
以下にアクセスし、
http://192.168.0.xx/phpmyadmin/
root/WeSe@123456789 でログイン。
$cfg['TempDir’] (./tmp/) にアクセスできません。
phpMyAdmin はテンプレートをキャッシュすることができないため、低速になります。
というエラーがウヅァゐ場合は、
phpmyadminにtmp(フォルダ)を作成し、tmpのアクセス権を変更(右クリック>情報を見る>最下部>everyoneに読み/書き)
<WordPress>
wordpress-5.2.2-ja.zip
をダウンロードして解凍、wwwの下にwordpressを入れる。
Apache,PHP,MySQLが起動した状態で、
phpMyAdminで「wordpress」というデータベースを作成しておく。
http://192.168.0.xx/wordpress/
にアクセス。
Forbiddenなので
chmod -R 777 wordpress
WordPressのセットアップ画面。
情報を入力。
↑ホスト名に注意!localhost
ファイル wp-config.php に書き込めませんでした。
となる場合は、wordpress内にwp-config.phpを作成し、示された内容を貼る。
上述の chmod -R 777 wordpress を行っていれば出ないハズ。
しかし、テーマやプラグインのインストールや削除などができない(FTP云々が出る)ので、
wp-config.phpの最後に以下の1行を追加する。
define('FS_METHOD’,’direct’) ;
<アクセス権>
wwwを chmod -R 777 wordpress としてしまうと、全員フルアクセスで楽になると思えるがphpMyAdminで警告が出て使えなくなる。
以上。
正直、他で鯖を作るより面倒!Macはクヅォ!!
関連:[Mac] PHPのバージョンが異なる問題 [HighSierra]