How do I configure nginx and CodeIgniter?
Actually I got this working. Not sure how, but I think it was file permissions being set incorrectly or something.
Edit:For those who are wondering, I had an older version of PHP installed it seems. Reverting back to old class constructors fixed the issue. Darnit.
I have exactly the same problem (Codeigniter gives blank pages and the error pages and php are working) and i found that the problem was from the mysql db driver which should be changed to mysqli driver .
So just we need to change the db driver in config/database.php
$db['default']['dbdriver'] = 'mysqli';
And this is due that the mysql driver is deprecated in the new versions of php.
CodeIgniter4 How To Setup NGINX Server Blocks (Virtual Hosts) on RasperyPi Debian 10.4
I am using a RasperyPi-4 as web developing server with different projects running on it.Visual Studio Code enables editing files via Remote-SSH extension very easily.Setting up CI4 on NGINX gives you the opportunity to run different projects on the same server.Because it took me some days to get this configuration running I will give you a quick reference guide to setup quick and easy.If you have not installed NGINX and composer yet please have a look here:http://nginx.org/en/docs/beginners_guide.html
https://codeigniter4.github.io/userguide/installation/installing_composer.html
https://getcomposer.org/download/
- CodeIgniter4 installation via composer
server ip: 10.0.0.10port: 8085project name is 'test'Please modify to your needs!
cd /var/www/htmlcomposer create-project codeigniter4/appstarter test
the command above will create a 'test' folder /var/www/html/test
- Modify the 'env' file
sudo nano /var/www/html/test/envapp.baseURL = 'http://10.0.0.10:8085'
Important: Do NOT use 'localhost' for the server URL!!!!!
please uncomment:# CI_ENVIRONMENT = productionand modify:CI_ENVIRONMENT = development
Save the file as '.env' to hide the file
- NGINX Server Blocks
cd /etc/nginx/sites-availabletouch testsudo nano test
Paste this into the file and save after modifying to your requirements:
server { listen 8085; listen [::]:8085; server_name test; root /var/www/html/test/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm: fastcgi_pass unix:/run/php/php7.4-fpm.sock; # With php-cgi: # fastcgi_pass 127.0.0.1:9000; } error_page 404 /index.php; # deny access to hidden files such as .htaccess location ~ /\. { deny all; }}
After saving the file create a symbolic link to sites-enabled:
cd /etc/nginx/sites-enabledsudo ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test
- Modify File and Group Permissions
chown -v -R pi:www-data /var/www/html/testsudo chmod -v -R 775 /var/www/html/test
- Start NGINX
sudo service nginx start
- Open CI4 Welcome Page
http://10.0.0.10:8085