Shared Hosting Environment ========================== Shared hosting environments are often quite limited about configuration and directory structure. Still in most cases you can run Yii 2.0 on these. Deploying basic application --------------------------- Since there's typically only one webroot it is recommended to use basic application template. Refer to [Installing Yii chapter](start-installation.md) and install application template locally. ### Add extras for webserver If webserver used is Apache you'll need to add `.htaccess` file with the following content to `web` (where `index.php` is): ``` Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php ``` In case of nginx you should not need any extra config files. ### Renaming webroot If after connecting to your shared hosting via FTP or by other means you're seeing something like the following, you're most probably lucky. ``` config/ logs/ www/ ``` In the above `www` is webserver directory root (i.e. webroot). It could be named differently. Common names are: `www`, `htdocs`, `public_html`. Since we have webroot in our basic application template named `web` we need to rename it to whatever hosting webroot is before uploading. ### FTP root directory is writeable If you can write to the root level directory i.e. where `config`, `logs` and `www` are, just upload `assets`, `commands` etc. as is. ### Check requirements In order to run Yii hosting should meet its requirements. The very minimum requirement is PHP 5.4. In order to check the rest copy `requirements.php` from root directory into webroot directory and run it via browser using `http://example.com/requirements.php` URL. Don't forget to delete the file afterwards. Deploying advanced application ------------------------------ Deploying advanced application to shared hosting is a bit trickier than doing it with basic application because it has two webroots.