<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.sehanka.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sebastian.kalms</id>
	<title>wiki.sehanka.de - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sehanka.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sebastian.kalms"/>
	<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Spezial:Beitr%C3%A4ge/Sebastian.kalms"/>
	<updated>2026-04-17T15:07:37Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Gesch%C3%A4ftsreisen&amp;diff=425</id>
		<title>Geschäftsreisen</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Gesch%C3%A4ftsreisen&amp;diff=425"/>
		<updated>2025-03-19T11:05:09Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Allgemein =  * eine Geschäftsreise mit Pri­vat­an­teil ist möglich, sofern der betrieblich veranlasste Zeitanteil nicht unter zehn Prozent liegt, d. h.…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemein =&lt;br /&gt;
&lt;br /&gt;
* eine Geschäftsreise mit Pri­vat­an­teil ist möglich, sofern der betrieblich veranlasste Zeitanteil nicht unter zehn Prozent liegt, d. h. der Privatanteil kann größer sein als der betriebliche Anteil&lt;br /&gt;
* Kosten für eine Geschäftsreise mit Privatanteil können teilweise steuerlich geltend machen&lt;br /&gt;
* eine Privatreise über Firma nicht möglich, d. h. eine entsprechende Zahlung über die Firma wird als Darlehen bzw. Forderung an den Unternehmer angesehen und muss früher oder später ggf. mit Zinsen zurückgezahlt werden!&lt;br /&gt;
* Kos­ten ei­ner Ge­schäfts­rei­se mit Pri­vat­an­teil las­sen sich steuermindernd an­tei­lig gel­tend ma­chen, d. h. Geschäftsreise mit an­ge­häng­tem Ur­laub ist möglich. U. a. auch Anreisekosten&lt;br /&gt;
&lt;br /&gt;
== Regeln für die Abrechnung ==&lt;br /&gt;
&lt;br /&gt;
* Privatanteil der Geschäftsreise muss klar zu tren­nen sein bzw. sollten Selbstständige die Kosten sauber trennen. &lt;br /&gt;
* Privatanteil der Geschäftsreise gut do­ku­mentieren&lt;br /&gt;
* Geschäftsreise mit Privatanteil ist an­tei­lig an­zusetzen&lt;br /&gt;
* Rein betrieblich bedingte Aufwendungen, etwa für einen Messestand, Messe-Eintrittskarten oder eine Tagungsgebühr, zählen voll als Betriebsausgaben&lt;br /&gt;
* Gemischt veranlasste Kosten, beispielsweise für ein Flug- oder Bahnticket, können Unternehmer dagegen nur in Höhe des betrieblich bedingten Anteils steuerlich geltend machen&lt;br /&gt;
* geschäftliche Kosten vom Firmenkonto und mit der Firmenkreditkarte begleichen&lt;br /&gt;
* private Kosten vom privaten Konto bezahlen&lt;br /&gt;
* gemischt veranlasste Kosten (z. B. Flug- oder Bahnticket) oder auch gefahrene Kilometer sind in der Steuererklärung entsprechend dem ermittelten betrieblichen Anteil anzusetzen&lt;br /&gt;
* Hotel nach Ende der betrieblichen Dauer des Aufenthalts eine Teilrechnung ausstellen lassen, um diesen komplizierten umsatzsteuerlichen Spezialfall zu erleichtern&lt;br /&gt;
&lt;br /&gt;
== Weitere Reisende ==&lt;br /&gt;
&lt;br /&gt;
Beschäftigte&lt;br /&gt;
* bei Beschäftigten ist der Abzug der Betriebsausgaben für die Geschäftsreise mit Privatanteil leichter, da rein betrieblich veranlasst&lt;br /&gt;
* dann allerdings mit Steuerberatungskanzlei klären, was in diesem Fall für den geldwerten Vorteil gilt&lt;br /&gt;
&lt;br /&gt;
Familie&lt;br /&gt;
* schwierig wenn sich die Anteile zu sehr mischen, z. B. wenn die Familie mit zu einer betrieblich veranlassten Fortbildung reist&lt;br /&gt;
* mit Steuerberatungskanzlei klären&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=424</id>
		<title>Finanzbuchhaltung Schlosser &amp; Pfeiffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=424"/>
		<updated>2025-03-19T10:31:44Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Leistungen =&lt;br /&gt;
&lt;br /&gt;
== einmalig bei Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Eröffnungsbilanz&lt;br /&gt;
* Anmeldung beim Finanzamt&lt;br /&gt;
&lt;br /&gt;
== monatliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Finanzbuchaltung&lt;br /&gt;
* Gesellschafterverechnungskonto&lt;br /&gt;
** für Auslagen der Gesellschafter&lt;br /&gt;
** keine Gewinnentnahme&lt;br /&gt;
&lt;br /&gt;
== jährliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Jahresabschluss&lt;br /&gt;
* Prüfung Jahresabschluss&lt;br /&gt;
* 1x/Jahr ist Jahresabschlussgespräch&lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* 186,- € netto/monatlich bei 20.000,- €/Umsatz&lt;br /&gt;
* 550,- € netto/monatlich bei 1.000.000,- €/Umsatz&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
== Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Fragebogen zur Anmeldung beim Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Bank ausfüllen&lt;br /&gt;
&lt;br /&gt;
== monatliche Finanzbuchhaltung ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Belege (pdf) gehen elektronisch (via Mail) an STK&lt;br /&gt;
** Einnahmen&lt;br /&gt;
** Forderungen&lt;br /&gt;
** Verbindlichkeiten&lt;br /&gt;
** original Kontoauszüge und entsprechende Rechnungen&lt;br /&gt;
** etc.&lt;br /&gt;
* müssen zwischen 10. und 15. des Monats an STK versendet werden&lt;br /&gt;
* strukturell in separate Ordner&lt;br /&gt;
** Kasse z. B. Essen, Getränke, etc.&lt;br /&gt;
** Bank mit Kontoauszügen und Rechnungen&lt;br /&gt;
** Auslagen Lägel mit Belegen des aktuellen Monats&lt;br /&gt;
** Auslagen Kalms mit Belegen des aktuellen Monats&lt;br /&gt;
* BBA kommt monatlich zurück (Monatsergebnis) —&amp;gt; für Umsatzsteuer notwendig&lt;br /&gt;
&lt;br /&gt;
= Optionen =&lt;br /&gt;
&lt;br /&gt;
* Datev-Portal&lt;br /&gt;
* &amp;quot;Unternehmen online&amp;quot;&lt;br /&gt;
* 500 MB Speicher&lt;br /&gt;
* Kosten 13,- € monatlich&lt;br /&gt;
* Belege dort in Cloud hochladen (bleiben dort)&lt;br /&gt;
* durch &amp;quot;Verfahrensdokumentation&amp;quot; wären keine &amp;quot;Offline&amp;quot;-Belege mehr notwendig&lt;br /&gt;
* besteht Verknüpfung mit Buchungssystem&lt;br /&gt;
* besteht Verknüpfung mit Bank (Zahlungsverkehr)&lt;br /&gt;
* (keine Angebote und Rechnungen)&lt;br /&gt;
* es können Kunden angelegt werden&lt;br /&gt;
* es können Fälligkeiten angelegt werden&lt;br /&gt;
* es können Mahnungen erstellt werden&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finance &amp;amp; Controlling]]&lt;br /&gt;
[[Kategorie:Finanzbuchhaltung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Kategorie:Controlling&amp;diff=423</id>
		<title>Kategorie:Controlling</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Kategorie:Controlling&amp;diff=423"/>
		<updated>2025-03-19T10:30:54Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Allgemein =  TBD  Kategorie: Finance &amp;amp; Controlling“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemein =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Controller&amp;diff=422</id>
		<title>Controller</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Controller&amp;diff=422"/>
		<updated>2025-03-19T10:30:22Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Aufgaben =  TBD  Kategorie: Controlling“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Controlling&amp;diff=421</id>
		<title>Controlling</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Controlling&amp;diff=421"/>
		<updated>2025-03-19T10:28:59Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemein =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Controlling&amp;diff=420</id>
		<title>Controlling</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Controlling&amp;diff=420"/>
		<updated>2025-03-19T10:28:49Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Allgemein =  TBD  Kategorie:Finance % Controlling“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemein =&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finance % Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=419</id>
		<title>Kategorie:Finanzbuchhaltung</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=419"/>
		<updated>2025-03-19T10:27:45Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
=== Umsatzsteuer und &amp;quot;Ausführungszeitraum&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
* Umsatzsteuer muss generell an Finanzamt abgeführt werden&lt;br /&gt;
* &amp;quot;Ausführungszeitraum&amp;quot; ist eigentlich der &amp;quot;Leistungszeitpunkt&amp;quot;&lt;br /&gt;
* Frage dahinter ist &amp;quot;Wann geht eine Leistung über?&amp;quot;&lt;br /&gt;
* Umsatzsteuer wird fällig, wenn Leistungszeitpunkt erreicht ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=418</id>
		<title>Kategorie:Finanzbuchhaltung</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=418"/>
		<updated>2025-03-19T10:27:29Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Schlosser &amp;amp; Pfeiffer, Ansprechpartnerin ist Frau Walbe&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
=== Umsatzsteuer und &amp;quot;Ausführungszeitraum&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
* Umsatzsteuer muss generell an Finanzamt abgeführt werden&lt;br /&gt;
* &amp;quot;Ausführungszeitraum&amp;quot; ist eigentlich der &amp;quot;Leistungszeitpunkt&amp;quot;&lt;br /&gt;
* Frage dahinter ist &amp;quot;Wann geht eine Leistung über?&amp;quot;&lt;br /&gt;
* Umsatzsteuer wird fällig, wenn Leistungszeitpunkt erreicht ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Kategorie:Finance_%26_Controlling&amp;diff=417</id>
		<title>Kategorie:Finance &amp; Controlling</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Kategorie:Finance_%26_Controlling&amp;diff=417"/>
		<updated>2025-03-19T10:26:54Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde geleert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=416</id>
		<title>Finanzbuchhaltung Schlosser &amp; Pfeiffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=416"/>
		<updated>2025-03-19T10:26:03Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Allgemeines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Leistungen =&lt;br /&gt;
&lt;br /&gt;
== einmalig bei Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Eröffnungsbilanz&lt;br /&gt;
* Anmeldung beim Finanzamt&lt;br /&gt;
&lt;br /&gt;
== monatliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Finanzbuchaltung&lt;br /&gt;
* Gesellschafterverechnungskonto&lt;br /&gt;
** für Auslagen der Gesellschafter&lt;br /&gt;
** keine Gewinnentnahme&lt;br /&gt;
&lt;br /&gt;
== jährliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Jahresabschluss&lt;br /&gt;
* Prüfung Jahresabschluss&lt;br /&gt;
* 1x/Jahr ist Jahresabschlussgespräch&lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* 186,- € netto/monatlich bei 20.000,- €/Umsatz&lt;br /&gt;
* 550,- € netto/monatlich bei 1.000.000,- €/Umsatz&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
== Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Fragebogen zur Anmeldung beim Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Bank ausfüllen&lt;br /&gt;
&lt;br /&gt;
== monatliche Finanzbuchhaltung ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Belege (pdf) gehen elektronisch (via Mail) an STK&lt;br /&gt;
** Einnahmen&lt;br /&gt;
** Forderungen&lt;br /&gt;
** Verbindlichkeiten&lt;br /&gt;
** original Kontoauszüge und entsprechende Rechnungen&lt;br /&gt;
** etc.&lt;br /&gt;
* müssen zwischen 10. und 15. des Monats an STK versendet werden&lt;br /&gt;
* strukturell in separate Ordner&lt;br /&gt;
** Kasse z. B. Essen, Getränke, etc.&lt;br /&gt;
** Bank mit Kontoauszügen und Rechnungen&lt;br /&gt;
** Auslagen Lägel mit Belegen des aktuellen Monats&lt;br /&gt;
** Auslagen Kalms mit Belegen des aktuellen Monats&lt;br /&gt;
* BBA kommt monatlich zurück (Monatsergebnis) —&amp;gt; für Umsatzsteuer notwendig&lt;br /&gt;
&lt;br /&gt;
= Optionen =&lt;br /&gt;
&lt;br /&gt;
* Datev-Portal&lt;br /&gt;
* &amp;quot;Unternehmen online&amp;quot;&lt;br /&gt;
* 500 MB Speicher&lt;br /&gt;
* Kosten 13,- € monatlich&lt;br /&gt;
* Belege dort in Cloud hochladen (bleiben dort)&lt;br /&gt;
* durch &amp;quot;Verfahrensdokumentation&amp;quot; wären keine &amp;quot;Offline&amp;quot;-Belege mehr notwendig&lt;br /&gt;
* besteht Verknüpfung mit Buchungssystem&lt;br /&gt;
* besteht Verknüpfung mit Bank (Zahlungsverkehr)&lt;br /&gt;
* (keine Angebote und Rechnungen)&lt;br /&gt;
* es können Kunden angelegt werden&lt;br /&gt;
* es können Fälligkeiten angelegt werden&lt;br /&gt;
* es können Mahnungen erstellt werden&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finanzbuchhaltung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=415</id>
		<title>Kategorie:Finanzbuchhaltung</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Kategorie:Finanzbuchhaltung&amp;diff=415"/>
		<updated>2025-03-19T10:25:45Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „Kategorie:Finance &amp;amp; Controlling“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Finance &amp;amp; Controlling]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schloss&amp;diff=414</id>
		<title>Finanzbuchhaltung Schloss</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schloss&amp;diff=414"/>
		<updated>2025-03-19T10:25:07Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Sebastian.kalms verschob die Seite Finanzbuchhaltung Schloss nach Finanzbuchhaltung Schlosser &amp;amp; Pfeiffer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Finanzbuchhaltung Schlosser &amp;amp; Pfeiffer]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=413</id>
		<title>Finanzbuchhaltung Schlosser &amp; Pfeiffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=413"/>
		<updated>2025-03-19T10:25:07Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Sebastian.kalms verschob die Seite Finanzbuchhaltung Schloss nach Finanzbuchhaltung Schlosser &amp;amp; Pfeiffer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Schlosser &amp;amp; Pfeiffer, Ansprechpartnerin ist Frau Walbe&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
=== Umsatzsteuer und &amp;quot;Ausführungszeitraum&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
* Umsatzsteuer muss generell an Finanzamt abgeführt werden&lt;br /&gt;
* &amp;quot;Ausführungszeitraum&amp;quot; ist eigentlich der &amp;quot;Leistungszeitpunkt&amp;quot;&lt;br /&gt;
* Frage dahinter ist &amp;quot;Wann geht eine Leistung über?&amp;quot;&lt;br /&gt;
* Umsatzsteuer wird fällig, wenn Leistungszeitpunkt erreicht ist&lt;br /&gt;
&lt;br /&gt;
= Leistungen =&lt;br /&gt;
&lt;br /&gt;
== einmalig bei Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Eröffnungsbilanz&lt;br /&gt;
* Anmeldung beim Finanzamt&lt;br /&gt;
&lt;br /&gt;
== monatliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Finanzbuchaltung&lt;br /&gt;
* Gesellschafterverechnungskonto&lt;br /&gt;
** für Auslagen der Gesellschafter&lt;br /&gt;
** keine Gewinnentnahme&lt;br /&gt;
&lt;br /&gt;
== jährliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Jahresabschluss&lt;br /&gt;
* Prüfung Jahresabschluss&lt;br /&gt;
* 1x/Jahr ist Jahresabschlussgespräch&lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* 186,- € netto/monatlich bei 20.000,- €/Umsatz&lt;br /&gt;
* 550,- € netto/monatlich bei 1.000.000,- €/Umsatz&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
== Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Fragebogen zur Anmeldung beim Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Bank ausfüllen&lt;br /&gt;
&lt;br /&gt;
== monatliche Finanzbuchhaltung ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Belege (pdf) gehen elektronisch (via Mail) an STK&lt;br /&gt;
** Einnahmen&lt;br /&gt;
** Forderungen&lt;br /&gt;
** Verbindlichkeiten&lt;br /&gt;
** original Kontoauszüge und entsprechende Rechnungen&lt;br /&gt;
** etc.&lt;br /&gt;
* müssen zwischen 10. und 15. des Monats an STK versendet werden&lt;br /&gt;
* strukturell in separate Ordner&lt;br /&gt;
** Kasse z. B. Essen, Getränke, etc.&lt;br /&gt;
** Bank mit Kontoauszügen und Rechnungen&lt;br /&gt;
** Auslagen Lägel mit Belegen des aktuellen Monats&lt;br /&gt;
** Auslagen Kalms mit Belegen des aktuellen Monats&lt;br /&gt;
* BBA kommt monatlich zurück (Monatsergebnis) —&amp;gt; für Umsatzsteuer notwendig&lt;br /&gt;
&lt;br /&gt;
= Optionen =&lt;br /&gt;
&lt;br /&gt;
* Datev-Portal&lt;br /&gt;
* &amp;quot;Unternehmen online&amp;quot;&lt;br /&gt;
* 500 MB Speicher&lt;br /&gt;
* Kosten 13,- € monatlich&lt;br /&gt;
* Belege dort in Cloud hochladen (bleiben dort)&lt;br /&gt;
* durch &amp;quot;Verfahrensdokumentation&amp;quot; wären keine &amp;quot;Offline&amp;quot;-Belege mehr notwendig&lt;br /&gt;
* besteht Verknüpfung mit Buchungssystem&lt;br /&gt;
* besteht Verknüpfung mit Bank (Zahlungsverkehr)&lt;br /&gt;
* (keine Angebote und Rechnungen)&lt;br /&gt;
* es können Kunden angelegt werden&lt;br /&gt;
* es können Fälligkeiten angelegt werden&lt;br /&gt;
* es können Mahnungen erstellt werden&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finanzbuchhaltung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=412</id>
		<title>Finanzbuchhaltung Schlosser &amp; Pfeiffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Finanzbuchhaltung_Schlosser_%26_Pfeiffer&amp;diff=412"/>
		<updated>2025-03-19T10:24:49Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Allgemeines =  == organisatorisch ==  * monatliche Aufgabe * aktuell erledigt durch Schlosser &amp;amp; Pfeiffer, Ansprechpartnerin ist Frau Walbe  == rechtlich ==…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Schlosser &amp;amp; Pfeiffer, Ansprechpartnerin ist Frau Walbe&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
=== Umsatzsteuer und &amp;quot;Ausführungszeitraum&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
* Umsatzsteuer muss generell an Finanzamt abgeführt werden&lt;br /&gt;
* &amp;quot;Ausführungszeitraum&amp;quot; ist eigentlich der &amp;quot;Leistungszeitpunkt&amp;quot;&lt;br /&gt;
* Frage dahinter ist &amp;quot;Wann geht eine Leistung über?&amp;quot;&lt;br /&gt;
* Umsatzsteuer wird fällig, wenn Leistungszeitpunkt erreicht ist&lt;br /&gt;
&lt;br /&gt;
= Leistungen =&lt;br /&gt;
&lt;br /&gt;
== einmalig bei Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Eröffnungsbilanz&lt;br /&gt;
* Anmeldung beim Finanzamt&lt;br /&gt;
&lt;br /&gt;
== monatliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Finanzbuchaltung&lt;br /&gt;
* Gesellschafterverechnungskonto&lt;br /&gt;
** für Auslagen der Gesellschafter&lt;br /&gt;
** keine Gewinnentnahme&lt;br /&gt;
&lt;br /&gt;
== jährliche Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Erstellung Jahresabschluss&lt;br /&gt;
* Prüfung Jahresabschluss&lt;br /&gt;
* 1x/Jahr ist Jahresabschlussgespräch&lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* 186,- € netto/monatlich bei 20.000,- €/Umsatz&lt;br /&gt;
* 550,- € netto/monatlich bei 1.000.000,- €/Umsatz&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
== Gründung ==&lt;br /&gt;
&lt;br /&gt;
* Fragebogen zur Anmeldung beim Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Finanzamt ausfüllen&lt;br /&gt;
* Vollmacht Bank ausfüllen&lt;br /&gt;
&lt;br /&gt;
== monatliche Finanzbuchhaltung ==&lt;br /&gt;
&lt;br /&gt;
* monatliche Belege (pdf) gehen elektronisch (via Mail) an STK&lt;br /&gt;
** Einnahmen&lt;br /&gt;
** Forderungen&lt;br /&gt;
** Verbindlichkeiten&lt;br /&gt;
** original Kontoauszüge und entsprechende Rechnungen&lt;br /&gt;
** etc.&lt;br /&gt;
* müssen zwischen 10. und 15. des Monats an STK versendet werden&lt;br /&gt;
* strukturell in separate Ordner&lt;br /&gt;
** Kasse z. B. Essen, Getränke, etc.&lt;br /&gt;
** Bank mit Kontoauszügen und Rechnungen&lt;br /&gt;
** Auslagen Lägel mit Belegen des aktuellen Monats&lt;br /&gt;
** Auslagen Kalms mit Belegen des aktuellen Monats&lt;br /&gt;
* BBA kommt monatlich zurück (Monatsergebnis) —&amp;gt; für Umsatzsteuer notwendig&lt;br /&gt;
&lt;br /&gt;
= Optionen =&lt;br /&gt;
&lt;br /&gt;
* Datev-Portal&lt;br /&gt;
* &amp;quot;Unternehmen online&amp;quot;&lt;br /&gt;
* 500 MB Speicher&lt;br /&gt;
* Kosten 13,- € monatlich&lt;br /&gt;
* Belege dort in Cloud hochladen (bleiben dort)&lt;br /&gt;
* durch &amp;quot;Verfahrensdokumentation&amp;quot; wären keine &amp;quot;Offline&amp;quot;-Belege mehr notwendig&lt;br /&gt;
* besteht Verknüpfung mit Buchungssystem&lt;br /&gt;
* besteht Verknüpfung mit Bank (Zahlungsverkehr)&lt;br /&gt;
* (keine Angebote und Rechnungen)&lt;br /&gt;
* es können Kunden angelegt werden&lt;br /&gt;
* es können Fälligkeiten angelegt werden&lt;br /&gt;
* es können Mahnungen erstellt werden&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Finanzbuchhaltung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=MediaWiki:Sidebar&amp;diff=411</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=MediaWiki:Sidebar&amp;diff=411"/>
		<updated>2025-03-19T10:22:59Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
* Unternehmensbereiche&lt;br /&gt;
** Kategorie:Finance &amp;amp; Controlling| Finance &amp;amp; Controlling&lt;br /&gt;
* Produkte&lt;br /&gt;
** Kategorie:WordPress| WordPress&lt;br /&gt;
* Tools&lt;br /&gt;
** Kategorie:Git| Git&lt;br /&gt;
** Kategorie:MediaWiki| MediaWiki&lt;br /&gt;
** Kategorie:PhpStorm| PhpStorm&lt;br /&gt;
* Sonstiges&lt;br /&gt;
** Kategorie:HowTo| HowTo&lt;br /&gt;
** Kategorie:EK-Ablage| EK-Ablage&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=407</id>
		<title>Jahresabschluss</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=407"/>
		<updated>2024-12-17T15:18:59Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Kosten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* Ansprechpartnerin ist Frau Kloß&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Alex&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
= Leistungen =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* höhe der Kosten hängt vom Gegenstandswert ab, also von deinem Jahresumsatz bzw. deinem Jahreseinkommen: Berechnung https://apps.datev.de/help-center/documents/1080414&lt;br /&gt;
* prinzipiell sollte der Steuerberater seine Rechnung an der Mittelgebühr der Tabelle orientieren&lt;br /&gt;
* die Maximalgebühr bzw. Höchstgebühr wird auch als volle Gebühr oder 10/10, sprich „zehn Zehnte“ bezeichnet&lt;br /&gt;
* Tabelle ein Überblick darüber, wie hoch die Steuerberatergebühren (Ermessensspielraum) im Vergleich zum Gegenstandswert sind&lt;br /&gt;
* https://www.fastbill.com/blog/steuerberater-kosten&lt;br /&gt;
* Schlosser &amp;amp; Pfeiffer rechnet fast überall die günstigsten Sätze ab&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FINANCE &amp;amp; CONTROLLING]]&lt;br /&gt;
[[Kategorie:Schlosser &amp;amp; Pfeiffer]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=406</id>
		<title>Jahresabschluss</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=406"/>
		<updated>2024-12-17T15:09:50Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Kosten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* Ansprechpartnerin ist Frau Kloß&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Alex&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
= Leistungen =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* prinzipiell sollte der Steuerberater seine Rechnung an der Mittelgebühr der Tabelle orientieren&lt;br /&gt;
* die Maximalgebühr bzw. Höchstgebühr wird auch als volle Gebühr oder 10/10, sprich „zehn Zehnte“ bezeichnet&lt;br /&gt;
* wie hoch sein darf, hängt vom Gegenstandswert ab, also von deinem Jahresumsatz bzw. deinem Jahreseinkommen&lt;br /&gt;
* Tabelle ein Überblick darüber, wie hoch die Steuerberatergebühren (Ermessensspielraum) im Vergleich zum Gegenstandswert sind&lt;br /&gt;
* https://www.fastbill.com/blog/steuerberater-kosten&lt;br /&gt;
* Schlosser &amp;amp; Pfeiffer rechnet fast überall die günstigsten Sätze ab&lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FINANCE &amp;amp; CONTROLLING]]&lt;br /&gt;
[[Kategorie:Schlosser &amp;amp; Pfeiffer]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=405</id>
		<title>Jahresabschluss</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Jahresabschluss&amp;diff=405"/>
		<updated>2024-12-17T15:03:59Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „= Allgemeines =  == organisatorisch ==  * Ansprechpartnerin ist Frau Kloß * monatliche Aufgabe * aktuell erledigt durch Alex  == rechtlich ==  * TBD  = Leistu…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
== organisatorisch ==&lt;br /&gt;
&lt;br /&gt;
* Ansprechpartnerin ist Frau Kloß&lt;br /&gt;
* monatliche Aufgabe&lt;br /&gt;
* aktuell erledigt durch Alex&lt;br /&gt;
&lt;br /&gt;
== rechtlich ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
= Leistungen =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Kosten =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Prozess =&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FINANCE &amp;amp; CONTROLLING]]&lt;br /&gt;
[[Kategorie:Schlosser &amp;amp; Pfeiffer]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=404</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=404"/>
		<updated>2023-11-26T09:57:12Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 5: PhpMyAdmin installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== PHP-Versionen switchen ===&lt;br /&gt;
&lt;br /&gt;
auf Version 8.2 umstellen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew unlink php &amp;amp;&amp;amp; brew link --overwrite --force php@8.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version prüfen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
=== MariaDB installieren ===&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== MYSQL installieren ===&lt;br /&gt;
&lt;br /&gt;
==== Installieren ====&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
==== root-Passwort ändern ====&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
'''Installieren via Terminal'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Apache Configuration aufrufen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''httpd.conf ergänzen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Zugriff testen''' --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
'''PhpMyAdmin Configuration ggf. anpassen'''&lt;br /&gt;
https://docs.phpmyadmin.net/en/latest/config.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Apache via homebrew neu starten'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=403</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=403"/>
		<updated>2023-11-26T09:54:54Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== PHP-Versionen switchen ===&lt;br /&gt;
&lt;br /&gt;
auf Version 8.2 umstellen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew unlink php &amp;amp;&amp;amp; brew link --overwrite --force php@8.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version prüfen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
=== MariaDB installieren ===&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== MYSQL installieren ===&lt;br /&gt;
&lt;br /&gt;
==== Installieren ====&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
==== root-Passwort ändern ====&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Configuration aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
httpd.conf ergänzen um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugriff testen --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin Configuration ggf. anpassen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=402</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=402"/>
		<updated>2023-11-26T09:52:29Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* via Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== PHP-Versionen switchen ===&lt;br /&gt;
&lt;br /&gt;
auf Version 8.2 umstellen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew unlink php &amp;amp;&amp;amp; brew link --overwrite --force php@8.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version prüfen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Configuration aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
httpd.conf ergänzen um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugriff testen --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin Configuration ggf. anpassen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=401</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=401"/>
		<updated>2023-11-26T09:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt x: phpMyAdmin installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== PHP-Versionen switchen ===&lt;br /&gt;
&lt;br /&gt;
auf Version 8.2 umstellen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew unlink php &amp;amp;&amp;amp; brew link --overwrite --force php@8.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version prüfen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Configuration aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
httpd.conf ergänzen um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugriff testen --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin Configuration ggf. anpassen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=400</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=400"/>
		<updated>2023-11-26T09:51:18Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 3: PHP installieren, aktivieren und einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== PHP-Versionen switchen ===&lt;br /&gt;
&lt;br /&gt;
auf Version 8.2 umstellen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew unlink php &amp;amp;&amp;amp; brew link --overwrite --force php@8.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version prüfen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Configuration aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
httpd.conf ergänzen um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugriff testen --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin Configuration ggf. anpassen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=399</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=399"/>
		<updated>2023-11-26T09:45:38Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 5: PhpMyAdmin installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Configuration aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/httpd/httpd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
httpd.conf ergänzen um:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Alias /phpmyadmin /opt/homebrew/share/phpmyadmin&lt;br /&gt;
    &amp;lt;Directory /opt/homebrew/share/phpmyadmin/&amp;gt;&lt;br /&gt;
        Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        &amp;lt;IfModule mod_authz_core.c&amp;gt;&lt;br /&gt;
            Require all granted&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule !mod_authz_core.c&amp;gt;&lt;br /&gt;
            Order allow,deny&lt;br /&gt;
            Allow from all&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugriff testen --&amp;gt; http://localhost/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin Configuration ggf. anpassen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code /opt/homebrew/etc/phpmyadmin.config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Download ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=398</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=398"/>
		<updated>2023-11-26T09:37:23Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Quellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Config aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Apache, PHP, mySQL und PhpMyAdmin&lt;br /&gt;
* iOSX Mojave: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
* iOSX Sonoma: https://getgrav.org/blog/macos-sonoma-apache-multiple-php-versions&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=397</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=397"/>
		<updated>2023-11-26T09:35:49Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 4: PhpMyAdmin installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: MYSQL oder MariaDB installieren ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
https://formulae.brew.sh/formula/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
Installieren via Terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew install phpmyadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Config aufrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache via homebrew neu starten&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brew services stop httpd&lt;br /&gt;
brew services start httpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
apache, PHP, mySQL und phpmyadmin&lt;br /&gt;
* (mein) MacBook: https://coolestguidesontheplanet.com/install-apache-mysql-php-and-phpmyadmin-on-macos-high-sierra-10-13/&lt;br /&gt;
* (mein) iMac: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=396</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=396"/>
		<updated>2023-11-26T09:32:12Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Vorangegangene(r) Prozess(e) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
== Homebrew installieren (Prozess auslagern) ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
apache, PHP, mySQL und phpmyadmin&lt;br /&gt;
* (mein) MacBook: https://coolestguidesontheplanet.com/install-apache-mysql-php-and-phpmyadmin-on-macos-high-sierra-10-13/&lt;br /&gt;
* (mein) iMac: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=395</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=395"/>
		<updated>2023-11-26T09:31:24Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt y: Homebrew installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
apache, PHP, mySQL und phpmyadmin&lt;br /&gt;
* (mein) MacBook: https://coolestguidesontheplanet.com/install-apache-mysql-php-and-phpmyadmin-on-macos-high-sierra-10-13/&lt;br /&gt;
* (mein) iMac: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=394</id>
		<title>Lokale Entwicklungsumgebung am Mac einrichten (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Lokale_Entwicklungsumgebung_am_Mac_einrichten_(HowTo)&amp;diff=394"/>
		<updated>2023-11-26T09:30:49Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 4: PHP testen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
Folgende einzelnen Bestandteile werden für die lokale Entwicklungsumgebung (u. a. bei WordPress) benötigt:&lt;br /&gt;
* Apache (Webserver)&lt;br /&gt;
* PHP (Programmiersprache)&lt;br /&gt;
* MySQL (Datenbank)&lt;br /&gt;
* phpMyAdmin (Datenbankverwaltungssystem)&lt;br /&gt;
&lt;br /&gt;
Jede Mac Version hat einen vorinstallierten Apache-Server (unter macOS Sierra Version 2.4.27) und PHP (unter macOS Sierra High Version 7.1.8).  MySQL und phpMyAdmin müssen separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann es notwendig sein ruby, rails und node.js intsalliert zu haben, damit der bestimmte Teilprozesse der Entwicklung funktionieren:&lt;br /&gt;
* node.js, um einen Sass Compiler in phpStorm zu nutzen&lt;br /&gt;
* ruby und rvm (Ruby Version Manager), um Bundler für automatisierte Prozesse zu nutzen (Z.B.: File Watcher, Complier, ...)&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Link zu anderem HowTo&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Systeme bzgl. Kompatibilität checken ==&lt;br /&gt;
&lt;br /&gt;
* Betriebssystem: z.B. macOS Mojave Version 10.14.6&lt;br /&gt;
* Apache Webserver: z.B. Apache/2.4.34 (Unix) --&amp;gt; im Terminal Version abfragen&lt;br /&gt;
&lt;br /&gt;
 httpd -v&lt;br /&gt;
&lt;br /&gt;
* Benutzername des Benutzerkontos herausfinden: z. B. sebastian.kalms&lt;br /&gt;
&lt;br /&gt;
 dscl . list /Users | grep -v '_'&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: Apache konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Apache installieren (ggf.) ===&lt;br /&gt;
&lt;br /&gt;
 brew install httpd &lt;br /&gt;
&lt;br /&gt;
=== Apache starten und testen ===&lt;br /&gt;
&lt;br /&gt;
* im Terminal Apache starten&lt;br /&gt;
 sudo apachectl start&lt;br /&gt;
* Testen ob Webserver funktioniert: http://localhost im Browser eintragen und es sollte “It Works!”-Text angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
=== System-Ordner anlegen ===&lt;br /&gt;
&lt;br /&gt;
* im Benutzerordern, z.B. sebastian.kalms, den Ordner &amp;quot;Sites&amp;quot; anlegen&lt;br /&gt;
* Funktion ist das gleiche wie &amp;quot;public_html&amp;quot; und &amp;quot;htdocs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzer anlegen und anpassen ===&lt;br /&gt;
&lt;br /&gt;
* (“username.conf”) unter /etc/apache2/users/ anlegen&lt;br /&gt;
* im Terminal zum Ordner navigieren&lt;br /&gt;
 cd /etc/apache2/users&lt;br /&gt;
&lt;br /&gt;
* im Terminal Konfigurationsdatei (username.conf) anlegen&lt;br /&gt;
 nano sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Benutzer-Rechte mit einem der beiden Befehle anpassen&lt;br /&gt;
 sudo chmod 644 sebastian.kalms.conf&lt;br /&gt;
 sudo chmod 777 sebastian.kalms.conf&lt;br /&gt;
&lt;br /&gt;
* Code in Datei eintragen&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites/&amp;quot;&amp;gt;&lt;br /&gt;
 AllowOverride All&lt;br /&gt;
 Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
 Require all granted&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Apache anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Module aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* LoadModule authz_core_module libexec/apache2/mod_authz_core.so&lt;br /&gt;
* LoadModule authz_host_module libexec/apache2/mod_authz_host.so&lt;br /&gt;
* LoadModule userdir_module libexec/apache2/mod_userdir.so&lt;br /&gt;
* LoadModule include_module libexec/apache2/mod_include.so&lt;br /&gt;
* LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
* LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
* Include /private/etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
DocumentRoot anpassen&lt;br /&gt;
* damit Ordner automatisch verwendet wird&lt;br /&gt;
* nach DocumentRoot suchen und&lt;br /&gt;
 DocumentRoot &amp;quot;/Library/WebServer/Documents&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Library/WebServer/Documents&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 DocumentRoot &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&lt;br /&gt;
 &amp;lt;Directory &amp;quot;/Users/sebastian.kalms/Sites&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apache Benutzer ändern&lt;br /&gt;
* damit es keine Probleme mit Berechtigungen gibt, kann man den Apache Webserver unter der eigenen User-Kennung laufen lassen&lt;br /&gt;
* damit laufen auch die PHP Skripte mit der eigenen Kennung&lt;br /&gt;
* auf einer lokalen Maschine, die von einer Person verwendet wird, ist das kein großes Problem&lt;br /&gt;
* nach _www suchen&lt;br /&gt;
 User _www&lt;br /&gt;
 Group _www&lt;br /&gt;
&lt;br /&gt;
* wie folgt anpassen&lt;br /&gt;
 User sebastian.kalms&lt;br /&gt;
 Group staff&lt;br /&gt;
&lt;br /&gt;
=== Konfigurationsdatei für Benutzerverzeichnis anpassen ===&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei-Datei aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/extra/httpd-userdir.conf&lt;br /&gt;
&lt;br /&gt;
notwendige Funktion aktivieren (Raute vor folgenden Einträgen entfernen)&lt;br /&gt;
* Include /private/etc/apache2/users/*.conf&lt;br /&gt;
&lt;br /&gt;
=== Apache neu starten und Benutzerverzeichnis testen ===&lt;br /&gt;
&lt;br /&gt;
im Terminal neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
im Browser Benutzerverzeichnis testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/ aufrufen&lt;br /&gt;
&lt;br /&gt;
=== URL Rewrites zulassen ===&lt;br /&gt;
&lt;br /&gt;
* good idea to allow any .htaccess files&lt;br /&gt;
 &lt;br /&gt;
im Terminal aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
in nano &lt;br /&gt;
* &amp;quot;AllowOverride controls what directives may be placed in .htaccess files.&amp;quot; suchen und darunter &amp;quot;AllowOverride none&amp;quot; zu &amp;quot;AllowOverride All&amp;quot; ändern&lt;br /&gt;
* folgendes Modul aktivieren&lt;br /&gt;
 LoadModule rewrite_module libexec/apache2/mod_rewrite.so&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: PHP installieren, aktivieren und einrichten ==&lt;br /&gt;
&lt;br /&gt;
=== ggf. erst installieren ===&lt;br /&gt;
&lt;br /&gt;
* PHP via Homebrew installieren&lt;br /&gt;
&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
=== aktivieren ===&lt;br /&gt;
&lt;br /&gt;
im Terminal httpd.conf aufrufen&lt;br /&gt;
 sudo nano /etc/apache2/httpd.conf&lt;br /&gt;
&lt;br /&gt;
PHP-Modul hinzufügen&lt;br /&gt;
 LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so&lt;br /&gt;
oder PHP-Modul aktivieren (wenn schon im Mac-Lieferumfang installiert)&lt;br /&gt;
 LoadModule php7_module libexec/apache2/libphp7.so&lt;br /&gt;
&lt;br /&gt;
Apache neu starten&lt;br /&gt;
 sudo apachectl restart&lt;br /&gt;
&lt;br /&gt;
=== PHP testen ===&lt;br /&gt;
&lt;br /&gt;
PHP-Infodatei anlegen&lt;br /&gt;
* Name &amp;quot;phpinfo.php&amp;quot;&lt;br /&gt;
* Inhalt &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Testen&lt;br /&gt;
* http://localhost/~sebastian.kalms/phpinfo.php --&amp;gt; php-Info erscheint&lt;br /&gt;
* http://localhost/projektordner/ --&amp;gt; Projektordner muss vorher angelegt werden, z. B. &amp;quot;sehanka_de&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: PhpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
=== via Homebrew ===&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL installieren ==&lt;br /&gt;
&lt;br /&gt;
* MySQL ist standardmäßig kein Bestandteil von macOS&lt;br /&gt;
* unter https://dev.mysql.com/downloads/mysql/ heruntergeladen&lt;br /&gt;
* Pakete&lt;br /&gt;
** mein MacBook: Mac OS X 10.12 (x86, 64-bit), DMG Archive&lt;br /&gt;
** mein iMac (Mojave): macOS 10.13 (x86, 64-bit), DMG Archive&lt;br /&gt;
* anmelden nicht nötig --&amp;gt; &amp;quot;No thanks, just start my download&amp;quot; klicken&lt;br /&gt;
* Alte Version:&lt;br /&gt;
** nach erfolgreicher Installation erscheint ein Dialog mit einem temporären MySQL root Passwort&lt;br /&gt;
** am besten einmal kopieren, da wir es im nächsten Schritt direkt benötigt wird&lt;br /&gt;
* Neue Version&lt;br /&gt;
** bei Konfiguration &amp;quot;Use Legacy Password Encryption&amp;quot; auswählen&lt;br /&gt;
** Passwort für root User vergeben &lt;br /&gt;
* das GUI von MySQL ist dann über die Mac-Systemeinstellungen erreichbar&lt;br /&gt;
&lt;br /&gt;
== Schritt x: MYSQL root-Passwort ändern ==&lt;br /&gt;
&lt;br /&gt;
* sicher stellen, dass MySQL-Server läuft (siehe: Mac-Systemeinstellungen)&lt;br /&gt;
* Terminal folgenden Befehl eingeben: &lt;br /&gt;
 sudo /usr/local/mysql/bin/mysql -u root -p&lt;br /&gt;
* zuerst Passwort vom Mac (Login) eingeben&lt;br /&gt;
* anschließend (bei “Enter Password”) das temporäre Passwort aus der MySQL Installation eingeben&lt;br /&gt;
* Eingabeaufforderung im Terminal ändert sich in &lt;br /&gt;
 mysql&amp;gt;&lt;br /&gt;
* folgenden Befehl eingeben und ‚MeinNeuesPasswort‘ ersetzen&lt;br /&gt;
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinNeuesPasswort';&lt;br /&gt;
* danach den MySQL Server wieder neu starten&lt;br /&gt;
 sudo /usr/local/mysql/support-files/mysql.server start&lt;br /&gt;
&lt;br /&gt;
== Schritt x: phpMyAdmin installieren ==&lt;br /&gt;
&lt;br /&gt;
* phpMyAdmin unter http://www.phpmyadmin.net/home_page/downloads.php downloaden (ZIP Datei in der derzeit aktuellen Version)&lt;br /&gt;
* Datei entpacken, den Verzeichnisnamen auf phpMyAdmin kürzen und in das website Verzeichnis kopieren&lt;br /&gt;
* via Terminal Befehle ausführen&lt;br /&gt;
 sudo mkdir /var/mysql&lt;br /&gt;
 sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock&lt;br /&gt;
* via Terminal in den Ordner phpmyadmin wechseln und config Verzeichnis erstellen&lt;br /&gt;
 mkdir config&lt;br /&gt;
* die Berechtigungen ändern&lt;br /&gt;
 chmod o+w config&lt;br /&gt;
* folgende Seite im Browser öffnen: http://localhost/phpmyadmin/setup/ &lt;br /&gt;
* auf &amp;quot;Neuer Server&amp;quot; klicken &lt;br /&gt;
* auf Tab &amp;quot;Authentifizierung&amp;quot; klicken und gib das root Passwort eingeben und &amp;quot;Übernehmen&amp;quot;&lt;br /&gt;
* automatische Weiterleitung zum vorherigen Bildschirm und dort Download-Button klicken&lt;br /&gt;
* die heruntergeladene config.inc.php Datei im Verzeichnis &amp;quot;phpMyAdmin&amp;quot; speichern&lt;br /&gt;
* phpMyAdmin kann nun über http://localhost/phpmyadmin/ erreichen und MySQL Datenbanken verwaltet werden&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Homebrew ggf. schon installiert ist &lt;br /&gt;
 brew -v&lt;br /&gt;
&lt;br /&gt;
* Homebrew updaten, wenn installiert&lt;br /&gt;
 brew update&lt;br /&gt;
&lt;br /&gt;
* Homebrew installieren --&amp;gt; https://brew.sh/&lt;br /&gt;
&lt;br /&gt;
    echo 'eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;' &amp;gt;&amp;gt; /Users/sebastian.kalms/.zprofile&lt;br /&gt;
    eval &amp;quot;$(/opt/homebrew/bin/brew shellenv)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Node.js mit NPM installieren ==&lt;br /&gt;
&lt;br /&gt;
* zunächst checken, ob Node.js ggf. schon installiert ist&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* wenn nötig, installieren (NPM wird mit Node installiert)&lt;br /&gt;
 brew install node&lt;br /&gt;
&lt;br /&gt;
* Node testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 node -v&lt;br /&gt;
&lt;br /&gt;
* NPM testen (Versionsnummer müsste ausgegeben werden)&lt;br /&gt;
 npm -v&lt;br /&gt;
&lt;br /&gt;
* ab und zu mal aktualisieren&lt;br /&gt;
 brew update&lt;br /&gt;
 brew upgrade node&lt;br /&gt;
&lt;br /&gt;
== Schritt y: RVM installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Ruby installieren ==&lt;br /&gt;
&lt;br /&gt;
https://nrogap.medium.com/install-rvm-in-macos-step-by-step-d3b3c236953b&lt;br /&gt;
&lt;br /&gt;
== Schritt y: ruby mit Homebrew installieren ==&lt;br /&gt;
&lt;br /&gt;
 brew install ruby&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Frage 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Php installieren ==&lt;br /&gt;
&lt;br /&gt;
* https://getgrav.org/blog/macos-monterey-apache-multiple-php-versions&lt;br /&gt;
* ACHTUNG: Homebrew-Pfade teilweise anpassen!&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
apache, PHP, mySQL und phpmyadmin&lt;br /&gt;
* (mein) MacBook: https://coolestguidesontheplanet.com/install-apache-mysql-php-and-phpmyadmin-on-macos-high-sierra-10-13/&lt;br /&gt;
* (mein) iMac: https://coolestguidesontheplanet.com/install-apache-mysql-php-on-macos-mojave-10-14/*&lt;br /&gt;
lokalen Webserver einrichten&lt;br /&gt;
* https://www.paass.net/lokalen-webserver-mit-php-unter-macos-x-einrichten&lt;br /&gt;
* https://die25stestunde.de/wordpress-lokale-entwicklungsumgebung-auf-macos-sierra-high-einrichten/&lt;br /&gt;
phpmyadmin&lt;br /&gt;
* https://medium.com/@tintinve/installing-phpmyadmin-4-9-1-on-macos-catalina-10-15-49fdacc7f92d&lt;br /&gt;
Homebrew&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/homebrew&lt;br /&gt;
Node.js&lt;br /&gt;
* https://treehouse.github.io/installation-guides/mac/node-mac.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WEBENTWICKLUNG]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;br /&gt;
[[Kategorie:HowTo für WEBENTWICKLUNG]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=393</id>
		<title>Webfonts einbinden</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=393"/>
		<updated>2023-04-13T20:24:42Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 5: Font-Variablen festlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Schritt 1: Fonts zusammenstellen ==&lt;br /&gt;
&lt;br /&gt;
* google-webfonts-helper https://gwfh.mranftl.com/fonts&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: _fonts.scss anlegen ==&lt;br /&gt;
&lt;br /&gt;
* CSS kopieren, z. B. hind-regular&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* hind-regular - latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: 'Hind';&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: url('../fonts/hind-v10-latin-regular.eot'); /* IE9 Compat Modes */&lt;br /&gt;
  src: local('Hind Regular'), local('Hind-Regular'),&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff') format('woff'), /* Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.svg#Hind') format('svg'); /* Legacy iOS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Datei css/base/_fonts.scss kopieren&lt;br /&gt;
* Grundlage ist die SASS-Architektur: https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Font-Dateien downloaden und im Projekt ablegen ==&lt;br /&gt;
&lt;br /&gt;
* Dateien downloaden, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* hind-v10-latin-regular.eot?#iefix&lt;br /&gt;
* hind-v10-latin-regular.woff2&lt;br /&gt;
* hind-v10-latin-regular.woff&lt;br /&gt;
* hind-v10-latin-regular.ttf&lt;br /&gt;
* hind-v10-latin-regular.svg#Hind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Ordner fonts kopieren, z. B. themes/sehanka-base-theme/fonts&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Standard-Font festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/base/_fonts.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
  font-family: 'Hind', sans-serif;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Font-Variablen festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/abstracts/_variables.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------------------- TEXT&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Families&lt;br /&gt;
$font-family-first: 'Hind', 'Helvetica', 'Arial', sans-serif !default;&lt;br /&gt;
$font-family-second: 'PT Mono', monospace;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Sizes&lt;br /&gt;
$font-size-xxxl: 100px;&lt;br /&gt;
$font-size-xxl: 50px;&lt;br /&gt;
$font-size-xl: 50px;&lt;br /&gt;
$font-size-l: 30px;&lt;br /&gt;
$font-size-m: 25px;&lt;br /&gt;
$font-size-s: 18px;&lt;br /&gt;
$font-size-xs: 16px;&lt;br /&gt;
$font-size-xxs: 12px;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Weights&lt;br /&gt;
$font-weight-black: 900;&lt;br /&gt;
$font-weight-bold: 700;&lt;br /&gt;
$font-weight-medium: 300;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Fonts&lt;br /&gt;
@mixin font-first {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-second {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-third {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fourth {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-black;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fifth {&lt;br /&gt;
  font-family: $font-family-second;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ggf. gleich mobile Größen angeben, z. B. via CSS Function clamp() mit min und max font-size --&amp;gt; nutze Umrechnung px to rem: https://nekocalc.com/px-to-rem-converter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/// Headings&lt;br /&gt;
&lt;br /&gt;
$h1-size: clamp(2.0rem, 4vw, 2.625rem); // min 32px, max 42px&lt;br /&gt;
$h2-size: clamp(1.375rem, 3vw, 2.0rem); // min 22px, max 32px&lt;br /&gt;
$h3-size: clamp(1.125rem, 2.5vw, 1.375rem); // min 18px, max 22px&lt;br /&gt;
$h4-size: clamp(1.0rem, 2.75vw, 1.125rem); // min 16px, max 18px&lt;br /&gt;
$h5-size: clamp(0.875rem, 2.75vw, 1.0rem); // min 14px, max 16px&lt;br /&gt;
$h6-size: clamp(0.875rem, 2.75vw, 0.875rem); // min 14px, max 14px&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Frontend-Entwicklung]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=392</id>
		<title>Webfonts einbinden</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=392"/>
		<updated>2023-04-13T20:24:19Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 5: Font-Variablen festlegen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Schritt 1: Fonts zusammenstellen ==&lt;br /&gt;
&lt;br /&gt;
* google-webfonts-helper https://gwfh.mranftl.com/fonts&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: _fonts.scss anlegen ==&lt;br /&gt;
&lt;br /&gt;
* CSS kopieren, z. B. hind-regular&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* hind-regular - latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: 'Hind';&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: url('../fonts/hind-v10-latin-regular.eot'); /* IE9 Compat Modes */&lt;br /&gt;
  src: local('Hind Regular'), local('Hind-Regular'),&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff') format('woff'), /* Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.svg#Hind') format('svg'); /* Legacy iOS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Datei css/base/_fonts.scss kopieren&lt;br /&gt;
* Grundlage ist die SASS-Architektur: https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Font-Dateien downloaden und im Projekt ablegen ==&lt;br /&gt;
&lt;br /&gt;
* Dateien downloaden, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* hind-v10-latin-regular.eot?#iefix&lt;br /&gt;
* hind-v10-latin-regular.woff2&lt;br /&gt;
* hind-v10-latin-regular.woff&lt;br /&gt;
* hind-v10-latin-regular.ttf&lt;br /&gt;
* hind-v10-latin-regular.svg#Hind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Ordner fonts kopieren, z. B. themes/sehanka-base-theme/fonts&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Standard-Font festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/base/_fonts.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
  font-family: 'Hind', sans-serif;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Font-Variablen festlegen ==&lt;br /&gt;
&lt;br /&gt;
* ggf. gleich mobile Größen angeben, z. B. via CSS Function clamp() mit min und max font-size --&amp;gt; nutze Umrechnung px to rem: https://nekocalc.com/px-to-rem-converter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/// Headings&lt;br /&gt;
&lt;br /&gt;
$h1-size: clamp(2.0rem, 4vw, 2.625rem); // min 32px, max 42px&lt;br /&gt;
$h2-size: clamp(1.375rem, 3vw, 2.0rem); // min 22px, max 32px&lt;br /&gt;
$h3-size: clamp(1.125rem, 2.5vw, 1.375rem); // min 18px, max 22px&lt;br /&gt;
$h4-size: clamp(1.0rem, 2.75vw, 1.125rem); // min 16px, max 18px&lt;br /&gt;
$h5-size: clamp(0.875rem, 2.75vw, 1.0rem); // min 14px, max 16px&lt;br /&gt;
$h6-size: clamp(0.875rem, 2.75vw, 0.875rem); // min 14px, max 14px&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* in css/abstracts/_variables.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------------------- TEXT&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Families&lt;br /&gt;
$font-family-first: 'Hind', 'Helvetica', 'Arial', sans-serif !default;&lt;br /&gt;
$font-family-second: 'PT Mono', monospace;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Sizes&lt;br /&gt;
$font-size-xxxl: 100px;&lt;br /&gt;
$font-size-xxl: 50px;&lt;br /&gt;
$font-size-xl: 50px;&lt;br /&gt;
$font-size-l: 30px;&lt;br /&gt;
$font-size-m: 25px;&lt;br /&gt;
$font-size-s: 18px;&lt;br /&gt;
$font-size-xs: 16px;&lt;br /&gt;
$font-size-xxs: 12px;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Weights&lt;br /&gt;
$font-weight-black: 900;&lt;br /&gt;
$font-weight-bold: 700;&lt;br /&gt;
$font-weight-medium: 300;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Fonts&lt;br /&gt;
@mixin font-first {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-second {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-third {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fourth {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-black;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fifth {&lt;br /&gt;
  font-family: $font-family-second;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Frontend-Entwicklung]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=391</id>
		<title>Webfonts einbinden</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=391"/>
		<updated>2023-04-13T19:22:32Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Schritt 1: Fonts zusammenstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Schritt 1: Fonts zusammenstellen ==&lt;br /&gt;
&lt;br /&gt;
* google-webfonts-helper https://gwfh.mranftl.com/fonts&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: _fonts.scss anlegen ==&lt;br /&gt;
&lt;br /&gt;
* CSS kopieren, z. B. hind-regular&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* hind-regular - latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: 'Hind';&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: url('../fonts/hind-v10-latin-regular.eot'); /* IE9 Compat Modes */&lt;br /&gt;
  src: local('Hind Regular'), local('Hind-Regular'),&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff') format('woff'), /* Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.svg#Hind') format('svg'); /* Legacy iOS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Datei css/base/_fonts.scss kopieren&lt;br /&gt;
* Grundlage ist die SASS-Architektur: https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Font-Dateien downloaden und im Projekt ablegen ==&lt;br /&gt;
&lt;br /&gt;
* Dateien downloaden, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* hind-v10-latin-regular.eot?#iefix&lt;br /&gt;
* hind-v10-latin-regular.woff2&lt;br /&gt;
* hind-v10-latin-regular.woff&lt;br /&gt;
* hind-v10-latin-regular.ttf&lt;br /&gt;
* hind-v10-latin-regular.svg#Hind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Ordner fonts kopieren, z. B. themes/sehanka-base-theme/fonts&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Standard-Font festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/base/_fonts.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
  font-family: 'Hind', sans-serif;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Font-Variablen festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/abstracts/_variables.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------------------- TEXT&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Families&lt;br /&gt;
$font-family-first: 'Hind', 'Helvetica', 'Arial', sans-serif !default;&lt;br /&gt;
$font-family-second: 'PT Mono', monospace;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Sizes&lt;br /&gt;
$font-size-xxxl: 100px;&lt;br /&gt;
$font-size-xxl: 50px;&lt;br /&gt;
$font-size-xl: 50px;&lt;br /&gt;
$font-size-l: 30px;&lt;br /&gt;
$font-size-m: 25px;&lt;br /&gt;
$font-size-s: 18px;&lt;br /&gt;
$font-size-xs: 16px;&lt;br /&gt;
$font-size-xxs: 12px;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Weights&lt;br /&gt;
$font-weight-black: 900;&lt;br /&gt;
$font-weight-bold: 700;&lt;br /&gt;
$font-weight-medium: 300;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Fonts&lt;br /&gt;
@mixin font-first {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-second {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-third {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fourth {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-black;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fifth {&lt;br /&gt;
  font-family: $font-family-second;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Frontend-Entwicklung]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=390</id>
		<title>Webfonts einbinden</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=390"/>
		<updated>2023-04-13T19:21:33Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Sebastian.kalms verschob die Seite Fonts einbinden nach Webfonts einbinden, ohne dabei eine Weiterleitung anzulegen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Schritt 1: Fonts zusammenstellen ==&lt;br /&gt;
&lt;br /&gt;
* https://google-webfonts-helper.herokuapp.com/&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: _fonts.scss anlegen ==&lt;br /&gt;
&lt;br /&gt;
* CSS kopieren, z. B. hind-regular&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* hind-regular - latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: 'Hind';&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: url('../fonts/hind-v10-latin-regular.eot'); /* IE9 Compat Modes */&lt;br /&gt;
  src: local('Hind Regular'), local('Hind-Regular'),&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff') format('woff'), /* Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.svg#Hind') format('svg'); /* Legacy iOS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Datei css/base/_fonts.scss kopieren&lt;br /&gt;
* Grundlage ist die SASS-Architektur: https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Font-Dateien downloaden und im Projekt ablegen ==&lt;br /&gt;
&lt;br /&gt;
* Dateien downloaden, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* hind-v10-latin-regular.eot?#iefix&lt;br /&gt;
* hind-v10-latin-regular.woff2&lt;br /&gt;
* hind-v10-latin-regular.woff&lt;br /&gt;
* hind-v10-latin-regular.ttf&lt;br /&gt;
* hind-v10-latin-regular.svg#Hind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Ordner fonts kopieren, z. B. themes/sehanka-base-theme/fonts&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Standard-Font festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/base/_fonts.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
  font-family: 'Hind', sans-serif;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Font-Variablen festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/abstracts/_variables.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------------------- TEXT&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Families&lt;br /&gt;
$font-family-first: 'Hind', 'Helvetica', 'Arial', sans-serif !default;&lt;br /&gt;
$font-family-second: 'PT Mono', monospace;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Sizes&lt;br /&gt;
$font-size-xxxl: 100px;&lt;br /&gt;
$font-size-xxl: 50px;&lt;br /&gt;
$font-size-xl: 50px;&lt;br /&gt;
$font-size-l: 30px;&lt;br /&gt;
$font-size-m: 25px;&lt;br /&gt;
$font-size-s: 18px;&lt;br /&gt;
$font-size-xs: 16px;&lt;br /&gt;
$font-size-xxs: 12px;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Weights&lt;br /&gt;
$font-weight-black: 900;&lt;br /&gt;
$font-weight-bold: 700;&lt;br /&gt;
$font-weight-medium: 300;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Fonts&lt;br /&gt;
@mixin font-first {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-second {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-third {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fourth {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-black;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fifth {&lt;br /&gt;
  font-family: $font-family-second;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Frontend-Entwicklung]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=389</id>
		<title>Webfonts einbinden</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Webfonts_einbinden&amp;diff=389"/>
		<updated>2023-04-13T19:20:07Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: Die Seite wurde neu angelegt: „ == Schritt 1: Fonts zusammenstellen ==  * https://google-webfonts-helper.herokuapp.com/ * benötigte Fonts zusammenstellen  == Schritt 2: _fonts.scss anlegen…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Schritt 1: Fonts zusammenstellen ==&lt;br /&gt;
&lt;br /&gt;
* https://google-webfonts-helper.herokuapp.com/&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: _fonts.scss anlegen ==&lt;br /&gt;
&lt;br /&gt;
* CSS kopieren, z. B. hind-regular&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* hind-regular - latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: 'Hind';&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: url('../fonts/hind-v10-latin-regular.eot'); /* IE9 Compat Modes */&lt;br /&gt;
  src: local('Hind Regular'), local('Hind-Regular'),&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.woff') format('woff'), /* Modern Browsers */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */&lt;br /&gt;
       url('../fonts/hind-v10-latin-regular.svg#Hind') format('svg'); /* Legacy iOS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Datei css/base/_fonts.scss kopieren&lt;br /&gt;
* Grundlage ist die SASS-Architektur: https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
&lt;br /&gt;
== Schritt 3: Font-Dateien downloaden und im Projekt ablegen ==&lt;br /&gt;
&lt;br /&gt;
* Dateien downloaden, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* hind-v10-latin-regular.eot?#iefix&lt;br /&gt;
* hind-v10-latin-regular.woff2&lt;br /&gt;
* hind-v10-latin-regular.woff&lt;br /&gt;
* hind-v10-latin-regular.ttf&lt;br /&gt;
* hind-v10-latin-regular.svg#Hind&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in Ordner fonts kopieren, z. B. themes/sehanka-base-theme/fonts&lt;br /&gt;
&lt;br /&gt;
== Schritt 4: Standard-Font festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/base/_fonts.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
  font-family: 'Hind', sans-serif;&lt;br /&gt;
  font-size: 16px;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt 5: Font-Variablen festlegen ==&lt;br /&gt;
&lt;br /&gt;
* in css/abstracts/_variables.scss die grundlegenden Einstellungen des Fonts definieren, z. B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// ----------------------------------------------------------------------------------------------- TEXT&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Families&lt;br /&gt;
$font-family-first: 'Hind', 'Helvetica', 'Arial', sans-serif !default;&lt;br /&gt;
$font-family-second: 'PT Mono', monospace;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Sizes&lt;br /&gt;
$font-size-xxxl: 100px;&lt;br /&gt;
$font-size-xxl: 50px;&lt;br /&gt;
$font-size-xl: 50px;&lt;br /&gt;
$font-size-l: 30px;&lt;br /&gt;
$font-size-m: 25px;&lt;br /&gt;
$font-size-s: 18px;&lt;br /&gt;
$font-size-xs: 16px;&lt;br /&gt;
$font-size-xxs: 12px;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Font Weights&lt;br /&gt;
$font-weight-black: 900;&lt;br /&gt;
$font-weight-bold: 700;&lt;br /&gt;
$font-weight-medium: 300;&lt;br /&gt;
&lt;br /&gt;
// -------------------------------------------------------------------- Fonts&lt;br /&gt;
@mixin font-first {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-second {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-third {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  font-weight: $font-weight-bold;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fourth {&lt;br /&gt;
  font-family: $font-family-first;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-black;&lt;br /&gt;
}&lt;br /&gt;
@mixin font-fifth {&lt;br /&gt;
  font-family: $font-family-second;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: $font-weight-medium;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Frontend-Entwicklung]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=388</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=388"/>
		<updated>2023-04-13T12:33:28Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Permissions-Policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Strict-Transport-Security &amp;quot;max-age=2592000; includeSubDomains; preload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
==== via HTML ====&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#integration_with_html&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;referrer&amp;quot; content=&amp;quot;same-origin&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== via .htaccess ====&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=387</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=387"/>
		<updated>2023-04-13T12:32:29Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Referrer-Policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Strict-Transport-Security &amp;quot;max-age=2592000; includeSubDomains; preload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
==== via HTML ====&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#integration_with_html&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;referrer&amp;quot; content=&amp;quot;same-origin&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== via .htaccess ====&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=386</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=386"/>
		<updated>2023-04-13T12:31:52Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Referrer-Policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Strict-Transport-Security &amp;quot;max-age=2592000; includeSubDomains; preload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
==== via HTML ====&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#integration_with_html&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;referrer&amp;quot; content=&amp;quot;same-origin&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via .htaccess ===&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=385</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=385"/>
		<updated>2023-04-13T12:20:07Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Strict-Transport-Security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Strict-Transport-Security &amp;quot;max-age=2592000; includeSubDomains; preload&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=384</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=384"/>
		<updated>2023-04-13T12:19:55Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* X-Content-Type-Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=383</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=383"/>
		<updated>2023-04-13T12:19:41Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* X-Frame-Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set x-frame-options &amp;quot;sameorigin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=382</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=382"/>
		<updated>2023-04-13T12:19:15Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Bereiche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=381</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=381"/>
		<updated>2023-04-13T12:18:35Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Permissions-Policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Permissions-Policy &amp;quot;geolocation=()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=380</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=380"/>
		<updated>2023-04-13T12:15:47Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* Referrer-Policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy ==&lt;br /&gt;
&lt;br /&gt;
Syntax in .htaccess&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Header set Referrer-Policy &amp;quot;same-origin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=379</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=379"/>
		<updated>2023-04-13T12:06:30Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* ToDo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=378</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=378"/>
		<updated>2023-04-13T12:04:06Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* ToDo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=377</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=377"/>
		<updated>2023-04-13T11:57:54Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* ToDo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== script-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=376</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=376"/>
		<updated>2023-04-13T11:56:47Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* ToDo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=375</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=375"/>
		<updated>2023-04-13T11:54:58Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* manifest-src */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/manifest-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self' data:;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=374</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=374"/>
		<updated>2023-04-13T10:18:54Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* ToDo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self' data:;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=373</id>
		<title>Content Security Headers</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Content_Security_Headers&amp;diff=373"/>
		<updated>2023-04-13T10:15:38Z</updated>

		<summary type="html">&lt;p&gt;Sebastian.kalms: /* font-src */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Bereiche =&lt;br /&gt;
&lt;br /&gt;
== Content Security Policy ==&lt;br /&gt;
&lt;br /&gt;
=== upgrade-insecure-requests ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upgrade-insecure-requests;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== frame-ancestors ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
frame-ancestors 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== form-action ===&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
form-action 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== base-uri ===&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/base-uri&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
base-uri 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== connect-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect-src 'self' data: maps.googleapis.com;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== font-src === &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
font-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
=== img-src 'self' === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
img-src 'self' blob: data:;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== manifest-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
manifest-src 'self' data:;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== object-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
object-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== script-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== style-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
style-src 'self' 'unsafe-inline' 'report-sample';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== worker-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
worker-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default-src === &lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-src 'self';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Strict-Transport-Security == &lt;br /&gt;
&lt;br /&gt;
== X-Content-Type-Options == &lt;br /&gt;
&lt;br /&gt;
== X-Frame-Options ==&lt;br /&gt;
&lt;br /&gt;
== Referrer-Policy == &lt;br /&gt;
&lt;br /&gt;
== Permissions-Policy ==&lt;br /&gt;
&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy&lt;/div&gt;</summary>
		<author><name>Sebastian.kalms</name></author>
	</entry>
</feed>