Ik ben na een aantal jaren weg weer eens begonnen met php en wil een testenvironment maken op mijn pc. Ik heb een computer draaien met linux mint. Ik heb apache en php8.1 geïnstalleerd en geconfigureerd met behulp van de OceanDigital site.
Apache draait en PHP ook. Ik heb de virtualhost ook draaiende. Alleen nu het probleem: Ik heb een testpagina gemaakt en opgeslagen als test.php. Ik heb in die pagina wat HTML verwerkt en wat PHP. Nu wordt alles wat in HTML staat uitgevoerd, maar niet dat wat via PHP uitgevoerd moet worden.
Dus: <p>Hallo</p> komt op het scherm in de browser, maar <p><?php echo "Hello"; ?></p> niet.
Wat gaat hier mis?
Werkt dit wel?

<?php
phpinfo();
?>

Zo niet, dan ben ik benieuwd hoe je alles geïnstalleerd hebt, en welk stappenplan?
Normaal als je apt-get, yum of dnf gebruikt dan is alles gewoon werkend.
De stappen die ik uitgevoerd heb.
In de terminal:

sudo apt update
sudo apt install apache2
sudo ufw app list:
Aplications available:
Apache
Apache Full
Apache Secure
CUPS
sudo ufw allow 'Apache'
sudo ufw status:
Status: active

To Action From
----- ------ -----
22/tcp ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
Apache ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
sudo systemctl status apache2:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-02-23 14:37:08 CET; 3h 40min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 928 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Process: 5151 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Main PID: 971 (apache2)
Tasks: 8 (limit: 16530)
Memory: 7.4M
CPU: 1.009s
CGroup: /system.slice/apache2.service
?? 971 /usr/sbin/apache2 -k start
??5155 /usr/sbin/apache2 -k start
??5156 /usr/sbin/apache2 -k start
??5157 /usr/sbin/apache2 -k start
??5158 /usr/sbin/apache2 -k start
??5159 /usr/sbin/apache2 -k start
??6060 /usr/sbin/apache2 -k start
??6079 /usr/sbin/apache2 -k start

feb 23 14:37:08 ZenBook systemd[1]: Starting The Apache HTTP Server...
feb 23 14:37:08 ZenBook apachectl[944]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName? directive globally to suppress this message
feb 23 14:37:08 ZenBook systemd[1]: Started The Apache HTTP Server

In the browser:

http://your_server_ip
returns: the apache2 default page correctly

In de /var/www/html directory heb ik aangemaakt: /test.nl/public_html/test.php
De /etc/apache2.conf file heb ik ongewijzigd gelaten .
In /etc/sites-available/test.nl.conf toegevoegd:
ServerAdmin [email protected]
ServerName test.nl
ServerAlias www.test.nl
DocumentRoot /var/www/html/test.nl/public_html

In de terminal:
sudo a2dissite 000-default.conf
sudo a2ensite test.nl.conf
sudo systemctl restart apache2
sudo apache2ctl configtest:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName? directive globally to suppress this message
Syntax OK

sudo nano /etc/hosts:
7.0.0.1 localhost
127.0.1.1 ZenBook
192.168.43.89 test.nl

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

In de file test.php staat dit:

<!DOCTYPE html>
<html>
	<head><title>TEST</title></head>
	 <body>
	   <div><h2>Dit is de test.php pagina in de directory van /var/www/html/test.nl/public_html/</h2></div>
	  <div><h1><?php echo "Dit is de test.php pagina in de directory van /var/www/html/test.nl/public_html/"; ?></h1></div>
          <?php phpinfo(); ?>
	</body>
</html>

In de browser met localhost zie ik:
Dit is de test.php pagina in de directory van /var/www/html/test.nl/public_html/

Dus geen code die tussen <?php en ?> staat
Dat is wel heel opmerkelijk. Is dat wat je ziet de letterlijke broncode (rechtsklik - > bron bekijken) volgens de browser?

Of zie je het direct staan? In dat geval sta je denk ik opgemaakte code te copy-pasten.
De inhoud van test.php is door mij aangemaakt en zie ik ook zo letterlijk in de broncode, maar dus niet op de pagina in de browser. Alles wat PHP is blijft blank.
Kort gezegd:
Met deze code zie je dus enkel een heading en de tekst 'Dit staat buiten PHP-blokken.' op het eind?


<h1>PHPinfo</h1>
<?php
phpinfo();
echo "Hier staat iets!";
?>
Dit staat buiten PHP-blokken.


Erg vreemd dat de PHP-code gestript wordt?
Hoe bekijk je die pagina in je browser?
- Ariën - op 24/02/2024 10:45:22

Kort gezegd:
Met deze code zie je dus enkel een heading en de tekst 'Dit staat buiten PHP-blokken.' op het eind?

Erg vreemd dat de PHP-code gestript wordt?
Hoe bekijk je die pagina in je browser?


Dat is precies wat er gebeurt. Ik snap er niets van.
Ik gebruik Mozilla, eigenlijk net zoals ik willekeurig welke andere internet pagina bekijk.
O ja, ter verificatie heb ik de pagina ook geopend in Chromium en daar gebeurt precies hetzelfde.
Ik zie niet dat je PHP hebt geïnstalleerd. Maar dan zou je gewoon in de sourcecode in je browser je PHP-code moeten zien.

Instaleer PHP eens.
Is geInstalleerd.

$ php -v
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies
Nu pas? Of had je dat eerst al gedaan? Ik zie het niet in je stappenplan.

En wat gebeurt er als je een PHP script in de commandline uitvoert?
Ik heb PHP direct na apache geinstalleerd. Moet ik wellicht in de PHP installatie nog iets aanpassen? Dat heb ik niet gedaan.

- Ariën - op 24/02/2024 17:33:22

En wat gebeurt er als je een PHP script in de commandline uitvoert?

Bedoel je de commandline in de terminal? Hoe doe je dat?

Reageren