一個簡單的基於Debian的開發環境。

cenfeng發表於2019-06-28

這只是一個快速演練,描述瞭如何設定一個體面的開發環境,允許輕鬆設定多個站點。 它已經假定您已經安裝並配置了PHP,MySql和
Apache已經執行的 Debian或Ubuntu作業系統  你還需要一個有效的sudo。

雖然其中一些東西是Debian / Ubuntu特定的,但將它應用於任何其他發行版並不困難。

我們需要做的第一件事是建立一個'www'組。 該群組中的任何人都可以建立新網站。

sudo groupadd www

把自己放在這個群體中。

sudo gpasswd –a username www && newgrp www

現在,我們需要確保我們所有站點的儲存位置都由www擁有和寫入。

sudo chown :www /var/www
sudo chmod g+ws /var/www

chmod的s開關設定粘滯位並確保在/ var / www中建立的所有目錄也屬於www組。

我們需要確保www可以寫入儲存vhost配置的目錄。

sudo chown :www /etc/apache2/sites-*

接下來,我們將建立模板vhost配置。 我們將使用它來為我們的每個站點生成配置。

<VirtualHost *:80>
    
    ServerName {SITE}.local
    
    DocumentRoot /var/www/sites/{SITE}.local/htdocs
    DirectoryIndex index.php
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    
    <Directory /var/www/sites/{SITE}.local/htdocs>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /var/www/sites/{SITE}.local/logs/error.log
    LogLevel warn
    CustomLog /var/www/sites/{SITE}.local/logs/access.log combined
</VirtualHost>

將其儲存為/etc/apache2/sites-available/example.conf

現在,讓我們建立一個簡單的測試站點。

mkdir -p /var/www/sites/foo.local/{htdocs,logs}
echo '<?php phpinfo(); ?>' > /var/www/sites/foo.local/htdocs/index.php
cd /etc/apache2/sites-available
sed -e 's/{SITE}/foo/g' example.conf > foo.conf
sudo a2ensite foo.conf
sudo /etc/init.d/apache2 restart
echo '127.0.0.1 foo.local' | sudo tee -a /etc/hosts

這裡有一些命令,但它非常簡單:

The first line creates the minimal required directory structure for a new web site.
We then create an index.php file which has a call to phpinfo() in it.
Next we move into the directory where our vhost configs are stored.
We then create a new vhosy config called foo.conf which is a copy of the example.conf from above, we use sed to replace all instances of '{SITE}' with 'foo'
Next, enable this vhost. This adds a symlink within /etc/apache2/sites-enabled
Restart Apache.
Add foo.local to our hosts file. This enables the url http://foo.local to resolve to our local machine and hence, be served by Apache.

這是真的。 你可以在這個基本想法上建立相當多的東西。 我在多使用者系統中實現的一件事是向'www'組的成員提供新命令。 這些命令主要是
圍繞需要sudo的東西的 包裝器  ,但它確實使得從終端使用者的角度來看整個過程更加清晰。 考慮到機會和興趣,我可能會在另一個教程中詳細介紹相關細節。

有一點需要注意。 如果您希望網站中的目錄可由Apache寫入,則必須使它們屬於www-data組,並且該組將需要寫入許可權。 例如;

mkdir -p /var/www/sites/foo.local/uploads
sudo chown :www-data /var/www/sites/foo.local/uploads
sudo chmod g+w /var/www/sites/foo.local/uploads


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69933200/viewspace-2649048/,如需轉載,請註明出處,否則將追究法律責任。

相關文章